Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 8
Текст из файла (страница 8)
д.На длину полей и количество полей в записях таблицы не накладывается требование постоянства. Это означает, что структура данных и таблиц имеет большую гибкость.Поскольку постреляционная модель допускает хранение в таблицах ненормализованных данных, возникает проблема обеспечения целостностии н е п р о т и в о р е ч и в о с т и данных. Эта проблема решается включениемв С У Б Д механизмов, подобных хранимым процедурам в клиент-серверных системах.Для описания функций контроля значений в полях имеется возможностьсоздавать процедуры (коды конверсии и коды корреляции), автоматическивызываемые до или после обращения к данным. Коды корреляции выполняются сразу после чтения данных, перед их обработкой.
Коды конверсии, наоборот, выполняются после обработки данных.Часть 1. Основы36построениябазданныха)INVOICESINVNOCUSTNO037387238374823273648723INVOICE.ITEMSINVNOGOODSQTY0373Сыр30373Рыба28374Лимонад18374Сок68374Печенье27364Йогурт1INVNOCUSTNOGOODSQTY03738723Сыр3Рыба2Лимонад1Сок6Печенье2Йогурт1б)INVOICES8374736482328723Рис. 2.6. Структуры данных реляционной и постреляционной моделейДостоинством постреляционной модели является возможность представления совокупности связанных реляционных таблиц одной постреляционной таблицей.
Это обеспечивает высокую наглядность представления информации и повышение эффективности ее обработки.Недостатком постреляционной модели является сложность решения проблемы обеспечения целостности и непротиворечивости хранимых данных.2. Моделии типыданных37а)SELECTINVOICES.INVNO, CUSTNO, GOODS, QTYFROMINVOICES, INVOICE.ITEMSWHEREINVOICES.INVNO=INVOICE.ITEMS.INVNO;б)SELECTINVNO, CUSTNO, GOODS, QTYFROMINVOICES;Рис. 2.7. Операторы SQL для реляционной и постреляционной моделейРассмотренная нами постреляционная модель данных поддерживаетсяСУБД uniVers.
К числу других СУБД, основанных на постреляционной модели данных, относятся также системы Bubba и Dasdb.2.5. Многомерная модельМногомерный подход к представлению данных в базе появился практически одновременно с реляционным, но реально работающих многомерныхСУБД ( М С У Б Д ) до настоящего времени было очень мало.
С середины 90-хгодов интерес к ним стал приобретать массовый характер.Толчком послужила в 1993 году программная статья одного из основоположников реляционного подхода Э. Кодда. В ней сформулированы 12 основных требований к системам класса OLAP (OnLine Analytical Processing —оперативная аналитическая обработка), важнейшие из которых связаныс возможностями концептуального представления и обработки многомерныхданных. Многомерные системы позволяют оперативно обрабатывать информацию для проведения анализа и принятия решения.В развитии концепций ИС можно выделить следующие два направления:• системы оперативной (транзакционной) обработки;• системы аналитической обработки (системы поддержки принятия решений).Реляционные СУБД предназначались для информационных систем оперативной обработки информации и в этой области были весьма эффективны.В системах аналитической обработки они показали себя несколько неповоротливыми и недостаточно гибкими.
Более эффективными здесь оказываются многомерные СУБД (МСУБД).38Часть 1. Основы построениябазданныхМногомерные СУБД являются узкоспециализированными СУБД, предназначенными для интерактивной аналитической обработки информации.Раскроем основные понятия, используемые в этих СУБД: агрегируемослъ, историчность и прогнозируемость данных.Агрегируемостъ данных означает рассмотрение информации на различныхуровнях ее обобщения. В информационных системах степень детальностипредставления информации для пользователя зависит от его уровня: аналитик, пользователь-оператор, управляющий, руководитель.Историчность данных предполагает обеспечение высокого уровня статичности (неизменности) собственно данных и их взаимосвязей, а также обязательность привязки данных ко времени.Статичность данных позволяет использовать при их обработке специализированные методы загрузки, хранения, индексации и выборки.Временная привязка данных необходима для частого выполнения запросов, имеющих значения времени и даты в составе выборки.
Необходимостьупорядочения данных по времени в процессе обработки и представления данных пользователю накладывает требования на механизмы хранения и доступа к информации. Так, для уменьшения времени обработки запросов желательно, чтобы данные всегда были отсортированы в том порядке, в которомони наиболее часто запрашиваются.Прогнозируемость данных подразумевает задание функций прогнозирования и применение их к различным временным интервалам.Многомерность модели данных означает не многомерность визуализациицифровых данных, а многомерное логическое представление структуры информации при описании и в операциях манипулирования данными.По сравнению с реляционной моделью многомерная организация данныхобладает более высокой наглядностью и информативностью.
Для иллюстрации на рис. 2.8 приведены реляционное (а) и многомерное (б) представленияодних и тех же данных об объемах продаж автомобилей.Если речь идет о многомерной модели с мерностью больше двух, то необязательно визуально информация представляется в виде многомерныхобъектов (трех-, четырех- и более мерных гиперкубов). Пользователю и вэтих случаях более удобно иметь дело с двухмерными таблицами или графиками. Данные при этом представляют собой «вырезки» (точнее, «срезы»)из многомерного хранилища данных, выполненные с разной степенью детализации.Рассмотрим основные понятия многомерных моделей данных, к числу которых относятся измерение и ячейка.Измерение (Dimension) — это множество однотипных данных, образующих одну из граней гиперкуба.
Примерами наиболее часто используемыхвременных измерений являются Дни, Месяцы, Кварталы и Годы. В качестве географических измерений широко употребляются Города, Районы, Ре-2. Моделии типыданных39а)МодельМесяцОбъем«Жигули»июнь12«Жигули»июль24«Жигули»август5«Москвич»июнь2«Москвич»июль18«Волга»июль19МодельИюньИюльАвгуст«Жигули»12245«Москвич»218No«Волга»No19Noб)Рис. 2.8.
Реляционное и многомерное представление данныхгионы и Страны. В многомерной модели данных измерения играют роль индексов, служащих для идентификации конкретных значений в ячейках гиперкуба.Ячейка (Cell) или показатель — это поле, значение которого однозначноопределяется фиксированным набором измерений. Тип поля чаще всего определен как цифровой. В зависимости от того, как формируются значениянекоторой ячейки, обычно она может быть переменной (значения изменяются и могут быть загружены из внешнего источника данных или сформированы программно) либо формулой (значения, подобно формульным ячейкамэлектронных таблиц, вычисляются по заранее заданным формулам).В примере на рис.
2.8, б каждое значение ячейки Объем продаж однозначно определяется комбинацией временного измерения (Месяц продаж) и модели автомобиля. На практике зачастую требуется большее количество измерений. Пример трехмерной модели данных приведен на рис. 2.9.В существующих МСУБД используются два основных варианта (схемы)организации данных: гиперкубическая и поликубическая.В поликубической схеме предполагается, что в БД может быть определенонесколько гиперкубов с различной размерностью и с различными измерени-Часть 1. Основы построения40базданныхИзмерения:Время (год) —1994, 1995, 1996Менеджер — Петров, Смирнов, ЯковлевМодель — «Волга», «Жигули», «Москвич»Показатель: Объем продажОбъем продаж«Волга»/\ «Москвич»«Жигули»Рис.
2.9. Пример трехмерной моделиями в качестве граней. Примером системы, поддерживающей поликубический вариант БД, является сервер Oracle Express Server.В случае гиперкубической схемы предполагается, что все показатели определяются одним и тем же набором измерений. Это означает, что при наличии нескольких гиперкубов БД все они имеют одинаковую размерность и совпадающие измерения. Очевидно, в некоторых случаях информация в БД может бытьизбыточной (если требовать обязательное заполнение ячеек).В случае многомерной модели данных применяется ряд специальных операций, к которым относятся: формирование «среза», «вращение», агрегацияи детализация.«Срез» (Slice) представляет собой подмножество гиперкуба, полученноев результате фиксации одного или нескольких измерений.
Формирование«срезов» выполняется для ограничения используемых пользователем значений, так как все значения гиперкуба практически никогда одновременноне используются. Например, если ограничить значения измерения Модельавтомобиля в гиперкубе (рис. 2.9) маркой «Жигули», то получится двухмерная таблица продаж этой марки автомобиля различными менеджерамипо годам.Операция «вращение» (Rotate) применяется при двухмерном представлении данных. Суть ее заключается в изменении порядка измерений при визуальном представлении данных. Так, «вращение» двухмерной таблицы, показанной на рис.
2.8 б, приведет к изменению ее вида таким образом, что по осиX будет марка автомобиля, а по оси Y — время.Операцию «вращение» можно обобщить и на многомерный случай, еслипод ней понимать процедуру изменения порядка следования измерений.2. Моделии типыданных41В п р о с т е й ш е м случае, н а п р и м е р , это м о ж е т б ы т ь в з а и м н а я п е р е с т а н о в к а двухпроизвольных измерений.Операции «агрегация» (Drill Up) и «детализация» (Drill Down) означаютсоответственно переход к более общему и к более детальному представлениюинформации пользователю из гиперкуба.Для иллюстрации смысла операции «агрегация» предположим, что у нас имеется гиперкуб, в котором помимо измерений гиперкуба, приведенного нарис.