Программирование >>  Хронологические базы данных 

1 ... 6 7 8 [ 9 ] 10 11 12 ... 348


в реляционных системах. Иными словами, независимость данных - понятие относительное. Различные системы обеспечивают ее в разной мере или не обеспечивают вообще. Системы, базирующиеся на языке SQL, более развиты в этом направлении, чем старые системы, однако, как мы увидим в последующих главах, все они еще далеки от совершенства.

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

Fume Blanc

1996

Pinet Noir

1993

Zinfandel

1994

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

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

WINE

YEAR

BOTTLES

SELECT WINE, YEAR, BOTTLES

Chardonnay

1996

FROM CELLAR

Fume Blanc

1996

WHERE YEAR > 1995 ;

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

WINE

BOTTLES

SELECT WINE, BOTTLES

Chardonnay

FROM CELLAR ;

Fume Blanc

Pinet Noir

Zinfandel

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

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



(network). В данной книге мы не будем подробно рассматривать эти категории, поскольку, по крайней мере с точки зрения технологии, их можно считать устаревшими. (Учебное описание всех трех систем можно найти в [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.

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

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

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

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



1 ... 6 7 8 [ 9 ] 10 11 12 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика