Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Эволюция баз данных

.pdf
Скачиваний:
120
Добавлен:
11.06.2015
Размер:
3.26 Mб
Скачать

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

 

 

 

 

 

 

Таблица фактов ПРОДАЖА ТОВАРА

 

 

Таблица 12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ID_

 

 

ID_Дата

 

 

Код

 

 

ID_

 

Количество

 

Цена

Продажи

 

 

 

 

товара

 

 

Магазин

 

 

товара

 

сделки

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

D002

 

 

20023564

 

 

S002

 

 

 

1

 

 

11990

2

 

 

 

 

D001

 

 

20022746

 

 

S002

 

 

 

1

 

 

6890

 

3

 

 

 

 

D002

 

 

20022746

 

 

S003

 

 

 

2

 

 

13780

4

 

 

 

 

D003

 

 

30013170

 

 

S002

 

 

 

1

 

 

59990

 

 

 

 

 

 

 

 

Таблица измерения МАГАЗИН

 

 

 

 

Таблица 13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ID_Ма-

 

Название

 

 

 

Регион

 

 

Населен-

 

 

 

Адрес

газин

 

магазина

 

 

 

 

 

ный пункт

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S001

 

М-Видео

 

Калужская обл.

 

Обнинск

 

пр. Маркса, 45

S002

 

М-Видео

 

Рязанская обл.

 

Рязань

 

 

 

Московское ш., 5А

S003

 

М-Видео

 

Кировская обл.

 

Киров

 

 

 

Ул. Горького, 5А

 

 

 

 

 

 

 

 

 

Таблица измерения ТОВАР15

 

 

 

 

Таблица 14

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код

 

 

 

Наименование

 

Единица

 

Наимено-

Наименова-

 

 

 

 

 

измере-

 

вание ка-

ние произ-

товара

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ния

 

тегории

 

водителя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20023564

 

 

Стиральная машина

 

 

шт.

 

Бытовая

Samsung

 

 

 

 

 

WF-M509NZW

 

 

 

 

 

 

техника

 

 

 

 

20022746

 

 

Пылесос ZSC6930

 

 

шт.

 

Бытовая

Electrolux

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

техника

 

 

 

 

30013170

 

 

Ноутбук ICONIA

 

 

шт.

 

Компью-

Acer

 

 

 

 

 

484G64is

 

 

 

 

 

 

 

 

 

теры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица измерения ДАТА

 

 

 

 

Таблица 15

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ID_Дата

 

Год

 

 

Квартал

 

Месяц

 

День

 

День недели

 

 

D001

 

2011

 

 

2

 

 

06

 

 

21

 

 

 

ВТР

 

 

D002

 

2011

 

 

2

 

 

06

 

 

22

 

 

 

СРД

 

 

D003

 

2011

 

 

2

 

 

06

 

 

23

 

 

 

ЧТВ

 

15Данные взяты с сайта сети магазинов М-Видео. Автор данного пособия не является клиентом этого магазина, а его упоминание абсолютно случайно и не является рекламой.

41

 

МАГАЗИН

 

 

 

 

 

 

 

 

 

ID_Магазин

 

 

 

 

 

 

 

 

 

 

Название магазина

 

 

 

 

 

 

 

 

 

Регион

 

 

 

 

 

 

 

 

 

Населенный пункт

 

 

 

 

 

 

 

 

 

Адрес

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРОДАЖА ТОВАРА

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ID продажи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ID_Дата

 

 

 

 

 

 

 

 

Где продан

 

 

 

 

 

 

 

 

Код товара

 

 

 

 

 

 

 

Когда продан

ID_Магазин

 

 

Что продано

 

 

 

 

 

 

 

 

 

 

 

Количество товара

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Цена сделки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ДАТА

 

 

 

 

 

 

 

 

 

 

ТОВАР

 

 

 

 

 

 

 

 

 

 

 

 

 

Код товара

 

 

 

ID_Дата

 

 

 

 

 

 

 

 

 

 

 

 

Год

 

 

 

 

 

 

 

 

 

Наименование

 

 

 

Квартал

 

 

Произведен

Единица измерения

 

Относится к

Месяц

 

 

 

 

 

 

 

 

 

ID_Категория

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

День

 

 

 

 

 

 

 

 

 

ID_Производитель

 

 

 

День недели

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРОИЗВОДИТЕЛЬ

ID_Производитель Наименование производителя Торговая марка Страна

КАТЕГОРИЯ

ID_Категория Наименование категории Ограничения по продаже

Рис. 19. Схема данных в виде снежинки16

Необходимо отметить, что многомерный куб – это понятие концептуального уровня, которое ничего не говорит о способе физической организации данных. Его хранение в виде реляционной базы данных, т.е. в виде совокупности файлов, каждый из которых содержит одну таблицу, не всегда удобно. Попробуем проследить логику работы СУБД при попытке сформировать полное информационное описание продажи №3 из приведенного выше примера:

1)открыть файл ПРОДАЖА ТОВАРА и найти запись с ID_Прода-

жи = 3;

2)открыть файл ДАТА и найти запись с ID_Дата = D002; прочитать эту запись и подставить полученную информацию в итоговое описание продажи;

3)открыть файл ТОВАР, найти и прочитать запись с Код товара

=20022746;

16Схема данных представлена в виде диаграммы «сущность-связь». Несмотря на то, что в данном пособии тема концептуального моделирования не рассматривается, простого взгляда на схему достаточно, чтобы понять, что каждый прямоугольник – это отношение (таблица), прописными буквами указано его название, после чего перечислены его поля.

42

Рис. 20. Трехмерный куб продаж товаров

4) открыть файл МАГАЗИН, найти и прочитать запись с ID_Мага-

зин = S003.

Только после этих действий получаем полное описание продажи №3: 22 июня 2011 г. (в среду) в магазине М-Видео по адресу Кировская обл., г. Киров, ул. Горького, 5А в категории «бытовая техника» был продан пылесос Electrolux ZSC6930 в количестве 2 шт. на сумму 13780 руб.

Процедура становится очень трудоемкой, если необходимо обрабатывать десятки тысяч таких продаж. Упростить ситуацию можно, поместив все данные в одну таблицу ПРОДАЖА ТОВАРА

(Год, Квартал, Месяц, День, День недели, Наименование, Единица измерения, Наименование категории, Наименование производителя, На-

звание магазина, Регион, Населенный пункт, Адрес, Количество товара,

Цена сделки). Этот процесс называется денормализацией – в противоположность нормализации, декомпозирующей одно отношение на несколько с целью устранения избыточности и повышения неза-

43

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

2.9. Объектно-ориентированные базы данных

Другим направлением структурирования сложной многомерной информации является применение объектно-ориентированного подхода к хранению данных. Хотя работы в этом направлении велись с середины 1970-х гг., его формирование и сам термин «объектноориентированная база данных» (ООБД) связываются с манифестом [18], обнародованным в 1989 г. В нем были сформулированы основные характеристики, но не модель ООБД, строгого определения которой не существует до сих пор. В 1991 г. была сформирована группа по управлению данными, представленными в виде объектов

– ODMG (Object Data Management Group, англ.), преобразованная в 1998 г. в группу по управлению ООБД (Object Database Management Group, англ.). Эта группа просуществовала до 2001 г. и опубликовала несколько редакций требований к объектной модели данных, языку определения объектов, объектному языку запросов и к интерфейсам с языками программирования. Последняя версия этих требований – ODMG 3.0 стала, по существу, стандартом ООБД.

Данный подход основан на традиционной объектно-ориентиро- ванной парадигме, где любая конкретная сущность предметной области (например, работник Петров С.В. или пылесос ZSC6930) представляется в виде объекта, имеющего свой уникальный идентификатор. Каждый объект имеет состояние и поведение. Состояние – это набор значений его атрибутов. Значение атрибута – это тоже объект или множество объектов. Поведение – это изменение значений, производимое с помощью ассоциированных с объектов методов. Взаимодействие между объектами осуществляется посредством передаваемых друг другу сообщений. Например, сообщение «примени к себе данный метод» вызовет запуск соответствующей процедуры и, возможно, последующее изменение состояния объекта. Множество подобных объектов с одинаковыми атрибутами и методами образует класс. Классы в свою очередь могут образовывать иерархию.

На рисунке 21 приведен пример реализации базы данных, показанной на рис. 13, 14 и в табл. 7–9, с помощью объектно-ориенти-

44

рованной парадигмы17. Сравнив рис. 21 и 14, можно увидеть, что структурно ООБД очень напоминает иерархическую модель. Это вызвано тем, что основным видом связи между объектами и классами является обобщение, обеспечивающее наследование свойств.

Рис. 21. Объекты, атрибуты и методы

Общими для всех классов ООБД являются методы «Создать объект», «Удалить объект». Метод ПЕРЕВЕСТИ класса ОТДЕЛ (рис. 21) позволяет перевести работника из одного отдела в другой, а

17Данный пример лишь иллюстрирует введенные понятия и не является строгой объектно-ориентированной схемой.

45

метод НАЗНАЧИТЬ класса РАБОТНИК – изменить должность работника.

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

вто время как их обработка и изменение ложатся на прикладную программу. В объектно-ориентированном подходе изменение данных – это изменение состояния объекта, осуществляемое методами, ассоциированными с объектом [7]. Иначе говоря, в ООБД процедуры обработки являются частью данных, т.е. данные и процедуры объединены – инкапсулированы вместе.

Из-за привлекательности объектно-ориентированного подхода

впоследние двадцать лет наблюдается высокая активность в создании СУБД18. Согласно [16], сегодня их насчитывается около 300. Однако большинство из них являются экспериментальными прототипами, в то время как коммерческих продуктов сравнительно немного – наиболее испытанные временем представлены в табл. 16.

 

 

Таблица 16

 

Объектно-ориентированные СУБД

 

 

 

СУБД

Производитель

История и характеристика

VOB (Ve-

Versant Corporation

Одна из первых коммерческих ООБД

rsant Ob-

(США). В 2004 г. в нее

создана в первой половине 1990-х гг.

ject Data-

вошла европейская

Имеет собственный язык запросов,

base)

Poet Software GmbH

похожий на SQL-92

Objectivi-

Objectivity, Inc. (США)

Проект стартовал в начале 1990-х гг.

ty/DB

 

Основан на стандарте ODMG-3.0.

 

 

Сегодня доступна версия 10

Object

Object Design, Inc., с

Выпускается с начала 1990-х гг. Се-

Store

2002 г. – Progress

годня доступна версия 7

 

Software (США)

 

2.10. Темпоральные базы данных

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

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

46

по времени остается за разработчиком. Темпоральная база данных отличается от традиционной тем, что любые данные в ней рассматриваются как изменяющиеся во времени и истинные только в определенный момент или интервал времени [5].

Базовым понятием в темпоральной базе данных является линия времени – представление моментов и интервалов времени, характеризующих истинность хранимой информации19. Как правило, обычная база данных хранит лишь текущую информацию, т.е. информацию, которая истинна в данный момент времени. Если информация меняется, например, происходит повышение зарплаты сотрудника, то размер новой зарплаты записывается на место старой (табл. 17). И уж тем более, эта информация исчезнет после увольнения сотрудника и удаления соответствующей записи. В отличие от обычной, в темпоральной базе данных сохраняется вся история данных. Известны два основных способа формирования линии времени:

1)указание интервалов времени, в течение которых определенный факт являлся истинным (табл. 18);

2)указание фактов, которые являлись истинными в определенный момент времени (табл. 19).

Таблица 17

Данные без темпоральных расширений

Номер

Фамилия И.О.

Оклад

1376

Сидоров А.Г.

18.000

 

 

 

427

Иванова И.В.

12.000

Таблица 18 Интервальное представление темпорального расширения данных

Номер

Фамилия И.О.

Оклад

Время

1376

Сидоров А.Г.

16.000

с 01.01.2010 по 31.12.2010

1376

Сидоров А.Г.

19.000

с 01.01.2011 по 31.01.2011

1376

Сидоров А.Г.

21.000

с 01.02.2011

427

Иванова И.В.

12.000

с 01.01.2010 по 31.08.2010

427

Иванова И.В.

13.000

с 01.09.2010 по 31.12.2010

427

Иванова И.В.

13.500

с 01.01.2011

19Строго говоря, существуют две линии времени – действительная (valid time) и транзакционная (transaction time). В тексте речь идет о первом типе.

47

Таблица 19 Точечное представление темпорального расширения данных

Время

1376, Сидоров А.Г.

427, Иванова И.В.

01.01.2010

16.000

11.000

02.01.2010

16.000

11.000

 

 

31.08.2010

16.000

11.000

01.09.2010

16.000

11.500

 

 

31.12.2010

16.000

11.500

01.01.2011

17.000

12.000

02.01.2011

17.000

12.000

 

 

31.01.2011

17.000

12.000

01.02.2011

18.000

12.000

 

 

Сейчас

18.000

12.000

В обоих случаях важным свойством линии времени является гранулярность, т.е. шаг разбиения времени на моменты, которые считаются различными.

Для работы с темпоральными базами данных в 1994 г. был разработан язык TSQL2 (SQL/Temporal), являющийся расширением традиционного SQL, и созданы немногочисленные СУБД (табл. 20).

 

 

Таблица 20

 

Темпоральные СУБД

 

 

 

СУБД

Производитель

История и характеристика

TimeDB

Andreas Steiner,

Прототип создан в 1997 г. на Прологе при

 

TimeConsult

подготовке диссертации А. Стейнера. С

 

(Швейцария)

2005 г. доступна версия 2.2 на Java

Informix

IBM (США)

Модуль, расширяющий функциональность

TimeSeries

 

СУБД Informix (см. табл. 10). Поддержива-

Datablade

 

ет все основные платформы. Создан в

 

 

2002 г., в настоящее время доступна вер-

 

 

сия 4

Immortal

Microsoft (США)

Исследовательский проект, ориентирован-

DB

 

ный на поддержку версионности базы дан-

 

 

ных, созданной в MS SQL Server. Старто-

 

 

вал в 2002 г.

48

Учитывая, что время является непременным атрибутом естественной жизни, идеология темпоральных баз данных применима практически во всех прикладных задачах, таких как формирование и хранение мультимедийного контента, совмещение пространственных и временных данных (например, движение автомобиля по дорогам или товара по складам) [5], поддержка версионности программ и документов, управление технологическим процессом и др.

2.11. Нереляционные базы данных

В 2000-е гг. с появлением web-ресурсов с огромными хранилищами разнородной информации разработчики стали все больше экспериментировать с новыми идеями. Реляционный подход основан на четком структурировании данных и строго формализованном доступе к ним, что делает базы данных негибкими и замедляет скорость работы. Новый подход базировался на отказе от фиксированной схемы данных и языка SQL. В 1998 г. этот подход получил название NoSQL, которое разными авторами трактуется как «нереляционная» или «не только SQL» (not only SQL, англ.). «Нереляционная» не означает антиреляционная – адепты этого направления, не отрицая достоинств реляционного подхода, лишь подчеркивают новые возможности нереляционного.

Рассмотрим основные понятия и нереляционные технологии хранения на примере данных, показанных в отношении РАБОТНИК, введенном в разд. 2.6 (табл. 21) 20.

Таблица 21

Отношение РАБОТНИК

Фамилия И.О.

Дата рождения

Пол

Должность

Петров С.В.

21.09.1978

М

Начальник

Иванова И.В.

18.07.1963

Ж

М.н.с.

Павлова В.Н.

23.01.1967

Ж

С.н.с.

Алексеев А.С.

21.07.1971

М

С.н.с.

Сидоров А.Г.

13.05.1958

М

Аналитик

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

49

Первое важное «нереляционное» понятие – ассоциативный массив (другие названия – ассоциативный контейнер, отображение, конечное отображение, словарь21 ), который представляет собой пару «ключ-значение». Подобно математической функции, связывающей независимую переменную x с зависимой y, ассоциативный массив отображает ключ на значение, т.е. ассоциирует значение с ключом. Например, с ключом Петров С.В. ассоциировано значение

Начальник; иначе говоря, имеем пару <Петров С.В., Начальник>. В

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

Ассоциативные массивы легли в основу так называемых key-va- lue-баз данных (другие названия – кортежные хранилища или хранилища «ключ-значение»), образцами которых, согласно данным англоязычной Wikipedia, являются Cassandra (Apache Software Foundation, 2008), GT.M (Fidelity National Information Services, Inc., 2000), Redis (VMware, 2009), Riak (Basho Technologies) и др.

Расширением ассоциативного массива стал трипл (triple – тройка, англ.) – три элемента, связанные в выражение «субъект – предикат – объект» [25]. Если на первое место в этой тройке поставить некоторый конкретный материальный объект, на второе – его свойство, а на третье – значение этого свойства, то получаем классический элемент информации «объект-атрибут-значение», например, <Петров С.В., Должность, Начальник>. По существу трипл – это одна ячейка классического отношения. Благодаря указанию свойства, для которого приведено значение, триплы являются более информативными, чем пары «ключ-значение». В случае пар каждый объект может быть представлен в базе данных лишь единожды, иначе нарушится свойство уникальности ключа. В случае триплов каждому объекту может соответствовать столько триплов, сколько свойств имеет данный объект. Например, отношение, показанное в табл. 21, можно представить следующими триплами<Петров: С.В., Дата рождения, 21.09.1978>;

<Петров С.В., Пол, М>; <Петров С.В., Должность, Начальник>;

<Иванова И.В., Дата рождения, 8.07.1963 > …

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

50