Скачиваний:
147
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

1.6. Реляционные и другие системы

Как уже упоминалось в конце раздела 1.3, СУБД, базирующиеся на реляционной мо- дели данных ("реляционные системы"), в настоящее время стали преобладающими на рынке баз данных. Более того, подавляющее большинство научных исследований в об- ласти баз данных в течение последних 30 лет было посвящено (иногда косвенно) именно этой модели. Фактически введение реляционной модели в 1969 и 1970 годах было, несо- мненно, наиболее важным событием в истории развития теории баз данных. По этим причинам, а также учитывая то, что реляционная модель основана на определенных ма- тематических и логических принципах и, следовательно, идеально подходит для изложе- ния теоретических концепций систем баз данных, основное внимание в настоящей книге уделяется (как уже отмечалось в разделе 1.1) именно реляционным системам и реляци- онному подходу.

Что мы подразумеваем под реляционной системой? К сожалению, на данном этапе обсуждения невозможно дать полный ответ на этот вопрос. Однако можно (и нужно!) дать хотя бы приблизительный ответ, который в дальнейшем будет существенно уточ- нен. Итак, кратко и не совсем точно реляционная система — это система, основанная на следующих принципах.

  1. Данные передаются пользователю в виде таблиц (и никак иначе).

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

Замечание. Причина, по которой такие системы называют реляционными, состоит в том, что английский термин "relation" (отношение), по сути, представляет собой приня- тое математическое название для таблицы. Поэтому на практике термины отношение и таблица в большинстве случаев можно считать синонимами, по крайней мере для не- формальных целей. (Обсуждение этого вопроса будет продолжено в главах 3 и 5.) Воз- можно, следует добавить, что причина, несомненно, заключается не в том, что термин отношение (relation) "по существу— просто математическое название для" связи (relationship) в терминах диаграмм "сущность-связь" (см. раздел 1.3). На самом деле ме- жду реляционными системами и подобными диаграммами существует совсем незначи- тельная прямая связь, что будет показано в главе 13.

Как уже отмечалось, в дальнейшем будет дано более точное определение, а сейчас мы будем использовать приведенное выше. На рис. 1.7 представлен пример структуры дан- ных и операторов, используемых в реляционных системах. Данные (рис. 1.7, а) пред-

ставлены одной таблицей под названием CELLAR (в действительности это еще одна вер- сия таблицы CELLAR (см. табл. 1.1), просто уменьшенная для того, чтобы с ней было лег- че работать). На рис. 1.7, б показаны два примера выборки данных: один — с получени- ем подмножества строк (оператор ограничения), а другой — с получением подмножества столбцов (оператор проекции).

Замечание. Оба варианта выборки осуществляются с помощью оператора SELECT языка SQL, упомянутого выше в этой главе.

Теперь мы можем различать реляционные и не реляционные системы по следую- щим признакам. Как уже отмечалось, пользователь реляционной системы видит дан- ные в виде таблиц и никак иначе. Пользователь не реляционной системы, напротив, видит данные, представленные в других структурах: либо вместо таблиц реляционной системы, либо наряду с ними. Для работы с этими другими структурами применяются другие операции. В частности, в иерархической системе (например, IMS фирмы IBM) данные представляются пользователю в форме набора древовидных структур (иерархий), а среди операций работы с иерархическими структурами есть операции перемещения по иерархическим указателям (навигации) вверх и вниз по ветвям де- ревьев. (Реляционные системы, как мы видели, не имеют таких указателей, и это очень важная их отличительная особенность.)

а) Дана таблица: CELLAR

WINE

YEAR

BOTTLES

Chardonnay

1996

4

Fume Blanc

1996

2

Pinet Noir

1993

CO

Zinfandel

1994

9

б) Примеры операторов:

1. Подмножество строк: Результат:

WINE

YEAR

BOTTLES

SELECT WINE, YEAR, BOTTLES

Chardonnay

1996

4

FROM CELLAR

Fume Blanc

1996

2

WHERE YEAR > 1995 ;

2. Подмножество столбцов: Результат:

WINE

BOTTLES

SELECT WINE, BOTTLES

Chardonnay

4

FROM CELLAR ;

Fume Blanc

2

Pinet Noir

3

Zinfandel

9

1

Рис. 1.7. Структура данных и операторы в реляционной системе (примеры)

Рассмотрим этот вопрос немного подробнее. На практике системы баз данных мо- гут быть легко распределены по категориям в соответствии со структурами данных и операторами, которые они предоставляют пользователю. Прежде всего, старые (доре- ляционные) системы можно разделить на три большие категории, а именно: системы инвертированных списков (inverted list), иерархические (hierarchic) и сетевые

(network)3. В данной книге мы не будем подробно рассматривать эти категории, по- скольку, по крайней мере с точки зрения технологии, их можно считать устаревшими. (Учебное описание всех трех систем можно найти в [1.5], если вас это интересует.) Кроме того, необходимо отметить, что термин сетевая (система) в данном случае не имеет ничего общего с коммуникационной сетью, а относится лишь к структуре дан- ных и операторам, которые поддерживаются данной системой.

Замечание. Сетевые системы иногда называют системами CODASYL или система- ми DBTG по имени группы, которая их предложила — Data Base Task Group (DBTG) of the Conference on Data Systems Languages (CODASYL). Пожалуй, наиболее извест- ной из таких систем была IDMS корпорации Computer Associates International, Inc. По- добно иерархическим системам (но в отличие от реляционных), все такие системы, кроме всего прочего, предоставляли в распоряжение пользователя внутренние указа- тели на элементы данных.

Первые реляционные продукты начали появляться в конце 1970-х и начале 1980-х годов. Во время написания этой книги преобладающее большинство СУБД были реля- ционными и предназначались для работы на практически любой программной и аппа- ратной компьютерной платформе. Среди них ведущими (в алфавитном порядке) явля- лись следующие: DB2 (всевозможные версии) корпорации IBM; Ingres II корпорации Computer Associates International, Inc.; Informix Dynamic Server корпорации Informix Software, Inc.; Microsoft SQL Server корпорации Microsoft; Oracle 8i корпорации Oracle и Sybase Adaptive Server компании Sybase, Inc.

Замечание. Если нам придется ссылаться на эти продукты ниже в настоящей книге, мы будем называть их (как это делается в большинстве случаев) сокращенными имена- ми: DB2, Ingres, Informix, SQL Server, Oracle и Sybase.

В последнее время стали появляться объектно-ориентированные и объектно- реляционные продукты4. Большинство объектно-реляционных СУБД основывается на совместимых снизу вверх расширениях оригинальных реляционных продуктов, как это случилось с DB2 или Informix. Существующие объектно-ориентированные системы представляют собой попытки сделать что-то совершенно отличное, как это имеет место в случае с системой GemStone корпорации GemStone Systems, Inc. и системой Versant ODBMS компании Object Technology. Мы рассмотрим эти новые системы в части VI.

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

4 Термин объект здесь имеет довольно специфическое значение, которое будет подробно по- яснено в части VI. А пока мы будем использовать этот термин в его обычном общем смысле, кроме случаев явного указания на противоположное.

В дополнение к различным уже упоминавшимся выше подходам в течение несколь- ких лет проводились исследования множества альтернативных схем, включая много- мерный (multi-dimensional) подход и логический (logic-based) подход, называемый еще дедуктивным или экспертным. Мы рассмотрим многомерные системы в главе 21, а ло- гические — в главе 23.

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]