Что такое модели данных?




Тема 1.3 Модели данных

Цель: формирование знаний о модели данных

Лекция №7 Современные модели данных

Постреляционная модель

Постреляционная модель является расширением реляционной модели. Она снимает ограничение неделимости данных, допуская многозначные поля, значения которых состоят из подзначений, и набор значений воспринимается как самостоятельная таблица, встроенная в главную таблицу.

Сопоставим реляционную и постреляционную модели данных на примере. В таблицах 1 и 2 отражена поставка товара в реляционной базе, а в таблице 3 – в постреляционной. Как видно из приведенного примера, в постреляционной базе данные хранятся более компактно, и не требуется выполнять операции связи двух таблиц. Такое хранение обеспечивает высокую наглядность представления данных и повышение эффективности их обработки.

Таблица 1

Номер накладной Код покупателя
   
   
   

Таблица 2

Номер накладной Наименование товара Количество
  Соль  
  Сыр  
  Мед  
  Сок  
  Рыба  
  Мясо  

Таблица 3

Номер накладной Код покупателя Наименование товара Количество
    Соль  
    Сыр  
    Мед  
    Сок  
    Рыба  
    Мясо  

 

Спецификой постреляционной модели является то, что она поддерживает множественные группы, называемые ассоциированными множественными полями, а совокупность объединенных множественных полей называется ассоциацией, например, в постреляционной модели может присутствовать множественное поле Выпуск, состоящее из полей, указывающих выпуск по кварталам года. В постреляционной модели не накладываются требования на длину и количество полей в записях, что делает структуру таблиц более наглядной.

Таким образом, основным достоинством постреляционной модели является возможность представления совокупности связанных реляционных таблиц в виде одной постреляционной таблицы. А недостатком является сложность обеспечения целостности и непротиворечивости данных, хранимых в ней.

Постреляционная модель данных реализована в СУБД uniVers, Bubba и Dasdb.

1.1.1 Многомерная модель

Одновременно с реляционной моделью данных появилась многомерная модель. Однако хоть идеи многомерной модели возникли одновременно с реляционной, но в ту пору практической реализации таких моделей не было. Это было вызвано появлением статьи Э. Кодда, в которой он сформулировал 12 требований к системам класса OLAP (OnlineAnalyticalProcessing – оперативная аналитическая обработка), связанных с возможностью представления и обработки многомерных массивов.

Информация в многомерной модели представляется в виде многомерных массивов, называемых гиперкубами. В одной БД, построенной на многомерной модели, может храниться множество таких кубов, на основе которых можно проводить совместный анализ показателей. Конечный пользователь в качестве внешней модели данных получает для анализа определенные срезы или проекции кубов, представляемые в виде обычных двумерных таблиц или графиков.

Развитию многомерных моделей способствовало и то, что широко распространенные реляционные модели и соответствующим образом организованные БД хорошо подходили для оперативной, то есть транзакционной обработки данных. В случае же аналитической обработки, то есть поддержки принятия решений реляционные системы не давали желаемого результата. А многомерные БД хорошо обслуживают именно аналитическую обработку данных и обычно являются узко специализированными. Они обеспечивают более быстрый поиск и чтение данных по сравнению с реляционными моделями, а также избавляют от необходимости многократного связывания таблиц. Среднее время ответа у них на сложный вопрос в десятки раз меньше, чем при использовании реляционной модели.

Агрегируемость данных означает рассмотрение и возможность анализа данных на разных уровнях обобщения: для пользователя, аналитика, руководителя. Историчность данных обозначает привязку их ко времени и высокий уровень неизменности (статичности) данных и их взаимосвязей. Временная привязка позволяет выполнять запросы, имеющие значения даты и времени. А статичность – использовать специализированные методы загрузки, хранения, выборки. Прогнозируемость данных предполагает задание функций прогнозирования и применение их к различным временным интервалам.

Многомерность модели данных – это, прежде всего, многомерное логическое представление структуры данных при их описании и в операциях манипулирования ими, а не многомерность их визуализации. По сравнению с реляционной моделью многомерная организация данных обладает более высокой информативностью. Для того чтобы убедиться в этом, рассмотрим многомерное представление данных и сопоставим его с реляционным (табл. 4).

Таблица 4 – Реляционное и многомерное представление данных

Выпуск продуктов цехом по кварталам года
Наименование продукта Квартал Выпуск
Сыр I  
Сыр II  
Сыр III  
Сыр IV  
Творог I  
Творог II  
Масло III  

а) Реляционное представление

Выпуск продуктов цехом по кварталам
Наименование продукта Выпуск по кварталам
I II III IV
Сыр        
Творог        
Масло        

б) многомерное представление (срез)

В примере на рис. 1 каждое значение выпуска однозначно определяется комбинацией временного измерения (квартал), названием выпускающего цеха и наименованием товара.

Рисунок 1 – пример трехмерной модели

В современных многомерных системах используется обычно два варианта (схемы) организации данных: гиперкубическая и поликубическая. В гиперкубической схеме все показатели определяются одним и тем же набором измерений и даже при наличии нескольких гиперкубов в базе все они имеют одинаковую размерность и совпадающие измерения. При поликубической организации в базе может быть определено несколько гиперкубов с различной размерностью и с различными измерениями в качестве граней. Примером поликубической системы является сервер OracleExpressServer.

Достоинством многомерной модели является удобство и эффективность анализа больших объемов данных, имеющих временную связь, а также быстрота реализации сложных нерегламентированных запросов. Недостаток этой модели в громоздкости в случае ее использования для решения стандартных задач оперативной обработки. Она, по сравнению среляционными, не эффективно использует память, так как в ней резервируется место для всех значений, даже если некоторые из них будут отсутствовать (рис. 1). Обычно многомерную модель применяется, когда объем базы не велик и гиперкуб использует стабильный по времени набор измерений.

Многомерные модели поддерживают следующие системы: Essbase (фирма ArborSoftware), MediaMulti-matrix (фирма Speedware), OracleExpressServer (фирма Oracle), Cache (фирмы InterSystems). Некоторые системы поддерживают одновременно реляционную и многомерную модель, например, Media/MR (фирма Speedware).

1.1.2 Объектно-ориентированная модель данных

Объектно-ориентированная модель представляет структуру, которую можно изобразить графически в виде дерева, узлами которого являются объекты (рис. 2). Между записями БД и функциями их обработки устанавливаются связи с помощью механизмов, подобных тем, которые имеются в объектно-ориентированных языках программирования. Такая модель позволяет идентифицировать отдельные записи базы. Определяемый пользователем объект называют объектом-целью. Поиск в объектно-ориентированной базе состоит в выяснении сходства между объектом, задаваемым пользователем, и объектами, хранящимися в базе.

Рисунок 2 – объектно-ориентированная база данных

Понятие объекта взято из объектно-ориентированного программирования. В этой среде все состоит из объектов. Объект обладает следующими свойствами: идентифицируется уникальным неизменным образом, принадлежит к определенному классу, может посылать сообщения другим объектам, имеет внутреннее состояние.

Таким образом, объектно-ориентированная БД состоит из объектов, каждый из которых должен принадлежать к определенному классу, то есть каждый объект – экземпляр класса. Объектно-ориентированная БД состоит из коллекции классов. Структура и поведение объектов в объектной среде полностью определяется его классом. Класс, в свою очередь, является коллекцией объектов, при этом структура и поведение объектов одного класса одинаковы.

Класс объекта состоит из его интерфейса и закрытой области. Интерфейс класса – это то, что видно другим объектам. Он, в свою очередь, состоит из двух частей: свойства класса и методов класса. Аналогом свойств являются атрибуты отношений. Например, клиент может иметь следующие свойства: номер, ФИО, адрес, телефон. К свойствам относятся также связи с другими объектами. Свойства сами могут быть объектами, что позволяет создавать составные объекты, например, свойство ФИО может состоять из свойств: фамилия, имя, отчество.

Доступ к значениям свойств и манипулирование ими можно осуществлять только посредством методов класса. То есть поведение объекта задается с помощью методов его класса. Обычно они имеют форму операций и функций, которые могут содержать параметры. На уровне интерфейса видимым является только имя каждого метода и требуемые параметры. Методы служат для передачи объектам сообщений. Другими словами, метод представляет то, что, по мнению пользователя, должен делать объект. Например, клиент может сделать заказ, оплатить счет и т.п. Для каждого из этих видов деятельности должен быть соответствующий метод.

Закрытая область – это та часть определения класса, которая не видна другим объектам. Пользователю объекта предоставляется информация только о том, как работать с объектом при помощи его методов. Сама же работа объекта скрыта от пользователя. Например, могут существовать дополнительные свойства с закрытыми значениями, а также скрытые связи и сообщения другим объектам.

Свойства объектов описываются либо одним из стандартных типов, заложенных в системе, например, строковым типом String, либо типом, который конструирует сам пользователь. Этот тип определяется словом Class. Значением свойства типа Class является объект, являющийся экземпляром соответствующего класса. Каждый объект – экземпляр класса считается потомком объекта, в котором он определен как свойство. Объект – экземпляр класса принадлежит своему классу и имеет одного родителя. Родовые отношения в базе образуют связанную иерархию объектов.

Важным достоинством объектно-ориентированной базы является то что пользователю не нужно знать о взаимодействии объектов: он просто обращается к конкретному объекту и использует конкретный метод. А то, что при этом осуществляется воздействие на другие объекты базы, скрыто от пользователя. Различные правила, руководящие использованием объектов, также могут быть скрыты от пользователя. Например, выбранный метод может, в свою очередь, обращаться к другим методам, например, методу проверки кредитоспособности выбранного клиента.

Чтобы определить класс объектов, нужно задать его свойства и методы, а также определить его взаимодействие с другими объектами. Понятие класс объекта во многом аналогично понятию тип. Поэтому при проектировании объектно-ориентированной БД нужно, прежде всего, осуществить процесс классификации, то есть выявить объекты с аналогичными свойствами и поведением и объединить их в классы.

Этих действий можно добиться и реляционных базах. Но для этого надо создать специальные приложения, предоставляющие пользователю интерфейс, производящий определенные действия, основанные на работе других частей БД. При объектной ориентации подобная деятельность может быть частью определенного объекта, а не представлять собой отдельное приложение. Таким образом, используя объекты и методы, можно хранить и неоднократно использовать не только структуру объекта БД, но и его поведение.

Инкапсуляция означает объединение в единое целое данных и алгоритмов (функций и методов) их обработки, а также скрытие данных внутри объектов, что повышает надежность разрабатываемого ПО. То есть вся информация об объекте заключена в определении его класса. Доступ к объекту может осуществляться только через его интерфейс. Поведение объекта полностью определяется принадлежностью к конкретному классу.

Наследование распространяет множество свойств и методов на всех потомков объекта. Аналогом наследования можно считать разбиение на подтипы. Например, можно определить классы Мужчина и Женщина как наследующие класс Человек. Все эти классы будут иметь общие свойства и методы. Однако в определении новых классов можно добавить дополнительные свойства и методы.

Полиморфизм допускает в объектах разных типов иметь методы (процедуры и функции) с одинаковыми именами, что означает способность одного и того же программного кода работать с разнотипными данными.

Создание объектной модели начинается с классификации – выявлении объектов с аналогичными свойствами и поведением и объединении их в классы. Например, в базе данных, содержащей диаграммы, можно классификацию начать с выделения объектов диаграмм, имеющих дату их создания. Процесс классификации позволяет выделить объекты с общими свойствами и методами. Однако, некоторые их свойства и методы различны. В этом случае производят генерализацию и специализацию.

Генерализация выявляет классы объектов с аналогичными свойствами и образует на основе этих свойств абстрактный суперкласс. Например, в БД, содержащей описание геометрических фигур, можно начать проектирование с выделения классов: треугольников, прямоугольников, окружностей, – а затем образовать из них абстрактный суперкласс Фигуры, состоящей из свойств, общих для всех фигур. Специализация – процесс обратный генерализации. При использовании этих процессов создается иерархия классов. Иерархии указывают цепочку наследования.

Важным процессом в объектно-ориентированной базе являтся агрегация. С помощью агрегации классы объектов могут связываться друг с другом, образуя класс агрегатов. Например, банковская база может содержать информацию о клиентах, счетах, филиалах, а также связи между ними. В объектно-ориентированной базе всю эту информацию можно инкапсулировать в одном агрегированном классе объектов.

Таким образом, создание объектно-ориентированной БД основано на процессах: классификации, генерализации, специализации и агрегации, – которые проводятся параллельно.

Резюмируя все вышеизложенное, можно сказать следующее:

- объектно-ориентированная БД – это попытка применить идеологию объектно-ориентированного программирования к технологии БД;

- объектно-ориентированная БД состоит из объектов, причем каждый объект принадлежит к определенному классу;

- поведение объекта полностью определяется его принадлежностью к определенному классу;

- процесс проектирования объектно-ориентированной базы основан на выявлении классов объектов.

Основным достоинством объектно-ориентированной базы модели данных по сравнению с реляционной является возможность отображения информации о сложных взаимосвязях объектов. Объектно-ориентированная модель позволяет также идентифицировать отдельные записи в базе и определять функции их обработки. Учитывая эти достоинства, сегодня уже некоторые реляционные СУБД дополняют функциями, позволяющими воспользоваться преимуществами объектной технологии.

Подводя итоги, можно сказать следующее. Основной недостаток объектно-ориентированной модели состоит в сложности понимания ее сути и низкой скорости выполнения запросов. В настоящее время объектно-ориентированные базы данных достаточно сложны, и потому их коммерческое использование идет медленно. Но у этих моделей есть потенциал а стало быть, и будущее. А потому исследования в области объектной ориентации становятся главным направлением в теории СУБД.

1.1.3 Объектно-реляционная модель

В связи со значительным усложнением приложений появилась новая модель – расширенная реляционная модель (ExtendedRelationDataModel – ERDM). Эта модель включила в себя основные достоинства объектно-ориентированной модели и одновременно унаследовала простоту структуры реляционных моделей, и потому стала называться объектно-реляционной моделью данных. В отличие от объектно-ориентированной модели () объектно-реляционная модель () основана на стратегии реляционной модели, в то время как модель основана на объектной стратегии. Исходя из этого, модель наиболее приспособлена для бизнес-приложений, а модель используется в специальных инженерных и научных приложениях. Некоторые специалисты полагают, что в будущем произойдет слияние и моделей.

Однако у объектно-реляционной и объектно-ориентированной моделей есть и ряд недостатков, основные из которых следующие:

- отсутствие унифицированной теории, которая есть в реляционных моделях;

- отсутствие формальной методологии проектирования БД, как нормализация в реляционных базах;

- отсутствие специальных средств создания запросов;

- отсутствие общих правил определения целостности и др.

 

Контрольные вопросы

Что такое модели данных?



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: