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

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

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

Рис. 16. Тип записи и записи в модели данных CODASYL

Рис. 17. Тип набора и набор в модели данных CODASYL

Рис. 18. Иерархическая (слева) и сетевая (справа) модели

В чем же состоит отличие сетевой модели от более простой иерархической? С точки зрения структуры данных, наиболее сущест-

31

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

 

 

Таблица 6

 

Сетевые СУБД

 

 

 

СУБД

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

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

IDMS

Cullinane Database

IDMS (Integrated Database Manage-

 

Systems. В 1983 г.

ment System) разработана для ЭВМ

 

переименована в

компании General Electric, затем

 

Cullinet, в 1989 г. куп-

адаптирована для IBM/360-370. В

 

лена компанией

1970-е гг. появилась версия для ЭВМ

 

Computer Associates

фирмы DEC, названная DBMS. В

 

 

1989 г. переименована в CA IDMS и

 

 

переориентирована на реляционную

 

 

модель

СЕТЬ

СССР

Советский аналог IDMS, практически

 

 

полностью реализующий модель

 

 

CODASYL

СЕТОР,

СССР

СИОД (система интеграции обработ-

СИОД

 

ки данных) и другие СУБД были ори-

 

 

ентированы на ЕС ЭВМ и не пережи-

НАБОБ

ВГПТИ ЦСУ СССР

ли ее

ПАРМА

НИИУМС (г. Пермь,

 

 

СССР)

 

СЕДАН

Советско-болгарский

 

 

институт «Интерпро-

 

 

грамма»

 

КОМПАС

ВЦ Академии наук

Сетевая СУБД для БЭСМ

 

СССР

 

НИКА

Институт системного

НИКА (система новой комплексной

 

анализа РАН

автоматизации) появилась в 1990 г.

 

 

для персональных компьютеров и

 

 

была основана на идеях ИНЕС. В

 

 

1995 г. на ее базе создана система

 

 

документооборота ЕВФРАТ. Сегодня

 

 

переориентирована на объектно-

 

 

ориентированную модель

Одной из первых и наиболее известной сетевой СУБД стала IDMS – интегрированная система управления базами данных, соз-

32

данная компанией Cullinet, основанной Ч. Бахманом. Пик популярности сетевых СУБД пришелся на конец 1970-х гг. (табл. 6). Благодаря своей высокой выразительности сетевая модель стала очень популярной среди отечественных разработчиков, создавших целый ряд сетевых СУБД.

2.6. Реляционные базы данных

По существу реляционная модель – это возврат к плоским файлам. Появлению этой модели предшествовали работы британского ученого Эдгара (Теда) Кодда

(Edgar Codd). Работая в компании IBM,

он в 1970 г. опубликовал статью о реляционной модели данных для больших банков данных, предназначенных для совместного использования [22]. Кодд стал прародителем современной технологии хранилищ данных. В 1981 г. он был удостоен Тьюринговской премии.

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

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

33

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

 

 

 

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

Таблица 7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Номер

Фамилия И.О.

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

Пол

Должность

 

12

Петров С.В.

21.09.1978

 

 

М

Начальник

 

427

Иванова И.В.

18.07.1963

 

 

Ж

М.н.с.

 

732

Павлова В.Н.

23.01.1967

 

 

Ж

С.н.с.

 

925

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

21.07.1971

 

 

М

С.н.с.

 

1376

Сидоров А.Г.

13.05.1958

 

 

М

Аналитик

 

 

 

 

 

Отношение ОТДЕЛ

Таблица 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Телефон

 

 

Название

 

Корпус

Этаж

 

Комната

 

 

 

Аналитический

 

2

 

3

 

 

2-326

 

 

372-76-39

 

 

 

Моделирования

 

2

 

4

 

 

2-412а

 

372-78-42

 

 

 

 

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

Таблица 9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Название

 

 

Номер

 

 

 

 

 

 

 

Аналитический

 

1376

 

 

 

 

 

 

 

 

 

Аналитический

 

427

 

 

 

 

 

 

 

 

 

Аналитический

 

12

 

 

 

 

 

 

 

 

 

Моделирования

 

732

 

 

 

 

 

 

 

 

 

Моделирования

 

925

 

 

 

 

 

 

Первой реляционной СУБД стала System R, созданная в середине 1970-х гг. в рамках исследовательского проекта IBM. Несмотря на то, что в основу ее разработки легли идеи Кодда, он не участвовал в этом проекте. Для работы с данными был создан специаль-

ный язык SEQUEL (Structured English QUEry Language, англ., струк-

турированный английский язык запросов). Согласно непроверенным сведениям, слово «SEQUEL» в то время являлось торговой маркой английской авиакомпании, вследствие чего язык был пере-

именован в SQL (Structured Query Language, англ.)11.

11В программистской среде до сих пор можно услышать «сикуэл», а не «эс- ку-эль».

34

При создании SQL разработчики System R достаточно вольно трактовали положения реляционной теории. Будучи в оппозиции, Кодд покинул IBM и вместе с программистом Крисом Дейтом (Christopher J. Date) основал независимую консалтинговую компанию, где они продолжили работу над реляционной моделью. По сегодняшний день, читая книги Дейта [1], можно почувствовать его критическую позицию по отношению ко многим допущениям SQL (например, о допустимости значения NULL).

Тем не менее, SQL стал первым языком, реализующим реляционный подход к структурированию данных. Первый официальный стандарт языка SQL – SQL-86 был принят в 1986 г. Американским национальным институтом стандартов (ANSI, American National Standards Institute) и одобрен Международной организацией по стандартизации (ISO, International Standardization Organization). За-

тем появились его модификации SQL-89, SQL-92 (или SQL2), SQL1999 (SQL3), SQL-2003, SQL-2006, SQL-2008. Полное официальное описание SQL содержится в девяти стандартах серии ISO/IEC 9075:2008. Information technology – Database languages – SQL.

System R была исследовательским проектом, а коммерциализация реляционной технологии произошла благодаря двум другим разработкам – Ingres и Oracle. Разработка СУБД Ingres велась в Калифорнийском университете параллельно System R и поддерживалась военными ведомствами США. Ingres стала «полигоном» для отработки технологий, реализованных позднее в Sybase, Informix и MS SQL Server. После коммерциализации Ingres группа разработчиков из Калифорнийского университета приступила к созданию на ее основе новой СУБД Postgres (Post Ingres), вышедшей в 1995 г.

Наибольшее влияние на коммерческое распространение реляционной модели оказала СУБД Oracle, выпущенная компанией Relational Software, Inc. (ныне Oracle Corporation) в 1979 г. (табл. 10). IBM также участвовала в конкурентной борьбе, выпустив в 1982 г. реляционную СУБД DB2.

Следующий исторический шаг в развитии реляционных баз данных сделала компания Sybase, выпустив в 1987 г. Sybase SQL Server, предназначенный для построения высокопроизводительной клиент-серверной архитектуры. С 1988 по 1996 гг. Sybase сотрудничала с Microsoft, при этом практически один и тот же продукт выпускался под двумя названиями Sybase SQL Server и Microsoft

35

SQL Server. К середине 1990-х гг. формируется «большая тройка» производителей СУБД: Sybase-Oracle-Informix.

История реляционных СУБД для микро-ЭВМ началась с dBASE II. Она была создана на базе никому не известной СУБД Vulcan, работавшей под CP/M. Римская цифра II по замыслу менеджеров компании должна была подчеркнуть, что данный продукт является более продвинутым и устойчивым, чем никогда не существовавшая dBASE I (аналогичный маркетинговый ход был сделан и менеджерами Oracle). Основным вкладом этой СУБД в историю баз данных стал новый формат .dbf, который затем использовался целым поколением разработчиков. Этот формат был предназначен для хранения одного отношения вместе с названиями и форматами его полей. Несмотря на то, что записи в файле .dbf имели фиксированную длину, допускалось создание полей неопределенной длины

– такие поля хранились в отдельном файле с расширением .dbt или .fpt. Этот формат подхватили другие фирмы, создавшие dBaseподобные языки и СУБД, такие как FoxBase, Paradox, Clipper.

 

 

Таблица 10

 

Реляционные СУБД12

 

 

 

СУБД

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

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

1

2

3

System R

IBM (США)

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

 

 

ны 1970-х гг. Появление языка

 

 

SEQUEL-SQL.

DB2

IBM (США)

1982 г. – первая версия со своим

 

 

диалектом SQL. Сегодня доступна

 

 

версия 10 для всех платформ

Ingres

Калифорнийский универ-

INteractive Graphics REtrieval System

 

ситет (США), с 1994 г. –

(диалоговая графическая система

 

Computer Associates, с

поиска). Середина 1970-х гг. – пер-

 

2005 г. – Ingres Corpora-

вая версия для DEC со своим диа-

 

tion

лектом SQL, современное название

 

 

Ingres Database, доступна версия 10

12Современный далеко не полный список составляет более 100 наименований, а перечислить все реляционные СУБД, созданные более чем за 30 лет, просто невозможно. В таблице приведены только те СУБД, которые оказали существенное влияние на историю, в том числе и отечественную.

36

 

 

Продолжение табл. 10

 

 

 

1

2

3

Postgres

Калифорнийский универ-

1995 г. – первая версия для DEC,

 

ситет (США), с 1996 г. –

современное название PostgreSQL,

 

некоммерческая группа

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

 

PostgreSQL Global Devel-

 

 

opment Group

 

Oracle

Relational Software, Inc., с

1979 г. – версия 2 (первой версии

 

1982 г. – Oracle Systems,

не существовало), написанная на

 

с 1986 г. – Oracle Corpo-

ассемблере для PDP-11, 1994 г. –

 

ration (США)

версия для IBM PC, сегодня дос-

 

 

тупна версия 11

Sybase

Sybase (США)

1987 г. – первая версия SQL-

 

 

сервера, современное название

 

 

Adaptive Server Enterprise

Informix

Relational Database Sys-

INFORMation on unIX. 1981 г. – пер-

 

tems, с 1986 г. – Informix

вая версия, 1985 г. – версия с под-

 

Software, в 2001–2005 гг.

держкой SQL, в 1994 г. название

 

куплена компанией IBM

сменилось на Informix Dynamic

 

 

Server

DataEase

Software Solutions Inc.

1981 г. – первая версия, поддержи-

 

(США) (в 1991 г. куплена

вающая свой язык DQL, 1990 г. –

 

компанией Sapphire In-

SQL-совместимая версия, сегодня

 

ternational Corporation

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

 

(Англия))

 

R:Base

Microrim Inc. (США) (се-

1981 г. – первая версия для ОС

 

годня R:BASE

CP/M,1983 г. – для DOS. В первых

 

Technologies, Inc.)

версиях SQL не поддерживался.

 

 

Сегодня издана версия 9, позицио-

 

 

нируемая для промышленных при-

 

 

менений

dBase

Ashton-Tate (США) (в

1980 г. – первая версия для ОС

 

1991 г. куплена компани-

CP/M, 1984 г. – dBASE III и конвер-

 

ей Borland, в 1999 г. пра-

тер для DOS, 1988 г. – полностью

 

ва на выпуск dBASE куп-

SQL-совместимая dBASE IV, с

 

лены компанией data-

1999 г. выпускается под маркой

 

Based Intelligence, Inc.)

dBASE Plus

FoxBase

Fox Software (США)

1984 г. – первая версия, абсолют-

 

 

ный аналог dBase (через несколько

 

 

лет компания Ashton-Tate подаст в

 

 

суд). С 1990 г. выпускается под мар-

 

 

кой FoxPro. Переносима благодаря

 

 

коду на С. К середине 2000-х гг. вы-

 

 

пущены версии 3 для Macintosh и 9

 

 

для Windows

37

 

 

Окончание табл. 10

 

 

 

1

2

3

Clipper

Nantucket Corporation

1985 г. – первая версия-компилятор

 

(США) (в 1993 г. куплена

для dBASE-подобных БД, c 1993 г.

 

компанией Computer As-

выпускалась под маркой CA-Clipper

 

sociates)

 

Interbase,

Groton Database Systems,

1984 г. – первая версия для PDP-11.

Firebird

с 1986 г. – InterBase

Наибольшую популярность приоб-

 

Software Corporation, в

рела версия 4 в 1994 г. Версия 5

 

1988 г. куплена компани-

была включена в дистрибутив Del-

 

ей Ashton-Tate, в 1991 г.

phi. В 2000 г. группа разработчиков

 

– Borland, сегодня выпус-

отделилась от Borland и на базе

 

кается компанией Embar-

исходных кодов Interbase создала

 

cadero Technologies

открытую СУБД Firebird

Paradox

Ansa Software (США) (в

1985 г. – первая версия для DOS, к

 

1985 г. куплена компани-

середине 2000-х гг. вышла версия

 

ей Borland)

11. Поддерживает свой язык PAL

ВЕРА

Министерство легкой

Создавалась в конце 1980-х гг. для

 

промышленности Латвии

ЕС ЭВМ ряда 2 (аналог IBM/370).

 

(СССР)

Поддерживала русифицированный

 

 

вариант SQL

ИНТЕ-

Воронежское СКТБ

Семейство реляционных СУБД

РЕАЛ

«Системпрограмм»

 

HyTech

МИФИ (РФ)

Разработана в конце 1990-х гг. и

 

 

предназначена для ведения рас-

 

 

пределенных БД сверхбольшого

 

 

объема

2.7. Уроки истории и перспективы

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

38

 

 

Таблица 11

 

СУБД смешанного типа

 

 

 

СУБД

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

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

ИНТЕР-

НПО «Центрпрограмм-

Разрабатывалась в конце 1980-х гг.

БАЗА

систем» (СССР) и

для ЕС и СМ ЭВМ. На физическом

 

«Роботрон» (ГДР)

уровне работает с плоскими фай-

 

 

лами, на внутреннем уровне дан-

 

 

ные описываются в виде сетевой

 

 

CODASYL-подобной модели, на

 

 

внешнем уровне поддерживает

 

 

стандартный SQL

db_VISTA

Raima Corporation

1984 г. – первая версия, 1988 г. –

 

(США). В 1999 г. вошла

db_VISTA III, наиболее распростра-

 

в Centura Software Cor-

ненная версия (позднее переиме-

 

poration (США), в

нована в RDM – Raima Database

 

2001 г. – в Birdstep

Manager). Является переносимой

 

Technology ASA (Нор-

благодаря коду на С. Поддерживает

 

вегия), в 2010 г. опять

упрощенную модель CODASYL, но

 

стала самостоятельной

на физическом уровне организация

 

и продолжила линию

данных представляет собой смесь

 

RDM

реляционной и сетевой идеологий

Далеко не все ясно с SQL. Большинство реляционных СУБД на первых порах не поддерживали SQL. Массовая «SQL-зация» началась лишь в самом конце 1980-х гг. с признанием этого языка в качестве международного стандарта. Однако и по сей день, несмотря на наличие стандарта, каждая СУБД имеет собственное «прочтение» SQL. Нельзя также забывать об «истинно» реляционных СУБД, воплощающих теорию Э. Кодда «в чистом виде».

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

1)частичный возврат к структурам данных с навигационными механизмами, большим количеством перекрестных ссылок, индексов и словарей;

2)еще большее упрощение реляционной структуры, когда несколько связанных на логическом уровне отношений сливаются в одно, называемое «многомерным кубом» (dimensional model);

3)применение объектно-ориентированного подхода к хранению данных, смешиваемого иногда с реляционным – так называемый объектно-реляционный подход.

39

Рассмотрим некоторые из современных направлений развития моделей баз данных.

2.8. Многомерные хранилища данных

В1993 г. Э. Кодд публикует отчет [23], в котором показывает, что реляционная концепция недостаточно приспособлена к задачам интеллектуальной обработки данных. Так, существующая на предприятиях информация отражает самые разные стороны его функционирования – финансы, структуру, проекты, заказы и др. Иначе говоря, информационная модель предприятия (как и любой предметной области) многомерна по своей природе, а любой серьезный анализ, как правило, затрагивает многие из этих «измерений».

Вданной работе Кодд предлагает концепцию оперативной ана-

литической обработки данных (On-Line Analytical Processing, OLAP, англ.), основанную на многомерном представлении данных. Для такого представления необходимо, чтобы предметная область описывалась схемами, напоминающими звезду или снежинку. В таких схемах выделяется одно базовое отношение, с которым связаны несколько вспомогательных. Базовое отношение чаще всего содержит описание каких-либо фактов или событий предметной области, например, ПРОДАЖА ТОВАРА (табл. 12). Из-за этого базовое отношение часто называют таблицей фактов. Вспомогательными отношениями являются таблицы, «расшифровывающие» отдельные элементы фактов, например, МАГАЗИН, ДАТА, ТОВАР. Такие таблицы могут содержать как справочную, так и оперативную информацию и называются таблицами измерений (табл. 13–15). Эти таблицы в свою очередь могут быть окружены своими вспомогательными таблицами – такая схема называется снежинкой (рис. 19). Если дело ограничивается только одним уровнем вспомогательных таблиц, то схема называется звездой.

Звездообразная схема образует многомерное информационное пространство или многомерный куб 13. Координатными осями или измерениями этого пространства являются вспомогательные табли-

цы. В нашем случае имеем трехмерное пространство с измерениями МАГАЗИН, ДАТА и ТОВАР14 (рис. 20). По каждой оси откладыва-

13Другие названия – многомерный массив данных, инфокуб, гиперкуб.

14Для простоты таблицы ПРОИЗВОДИТЕЛЬ и КАТЕГОРИЯ не рассматриваются, а наименования производителя и категории указаны непосредственно в таблице ТОВАР.

40