Главная » SQL, Базы данных » РЕЛЯЦИОННЫЕ И ДРУГИЕ СИСТЕМЫ

0

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

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

4   В приложении А приведен поразительный пример того, на что реляционные системы способны в этом отношении.

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

Итак, кратко и не совсем точно можно определить, что реляционная система — это система, основанная на описанных ниже принципах.

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

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

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

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

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

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

либо наряду с ними. Для работы с этими другими структурами применяются иные операции. В частности, в иерархической системе (например, в СУБД IMS фирмы IBM) данные    представляются    пользователю    в    форме    набора    древовидных    структур (иерархий),  а среди операций работы с  иерархическими  структурами есть операции перемещения  (навигации)  по   иерархическим  указателям,  позволяющие  переходить

вверх и вниз по ветвям деревьев. Реляционные системы, как мы видели, не  имеют

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

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

которые они предоставляют пользователю. Прежде всего, старые (дореляционные)

системы можно разделить на три большие категории6: системы с инвертированными списками (inverted list), иерархические (hierarchic) и сетевые (network). {Примечание. Термин сетевая система в данном случае не имеет ничего общего с коммуникационной сетью, как описано в следующей главе.) В настоящей книге эти категории подробно не рассматриваются, поскольку, по крайней мере, с точки зрения технологии, их можно считать устаревшими. Заинтересованный читатель  может найти методическое описание всех трех систем в [1.5].

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

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

Первые реляционные продукты начали появляться в конце 1970-х и начале 1980-х годов. Ко времени написания этой книги преобладающее большинство СУБД были реляционными (по меньшей мере, они поддерживали язык SQL) и предназначались для работы  практически  на  любой  существующей  программной  и  аппаратной  компьютерной платформе. Среди них ведущими (в алфавитном порядке) являлись следующие: DB2

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

(всевозможные  версии)  корпорации  IBM;  Ingres  II  корпорации  Computer  Associates International, Inc.; Informix Dynamic Server корпорации Informix Software, Inc.7; Microsoft SQL Server корпорации Microsoft; Oracle 8i корпорации Oracle и  Sybase Adaptive Server компании Sybase, Inc.

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

В последнее время стали появляться объектно-ориентированные и  объектно-реляционные продукты: первые объектные системы были выпущены в конце 1980-х и начале

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

Technology. Эти новые системы рассматриваются в части VI данной книги. (Следует отметить, что термин объект, применяемый в данном абзаце, имеет довольно специальное значение, как будет описано в части VI. Но в остальных частях настоящей книги, если не указано иное, этот термин используется в его обычном, универсальном смысле.)

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

(multi-dimensional) подход и логический (logic-based) подход, называемый еще дедуктивным или экспертным. Мы рассмотрим многомерные системы в главе 22, а логические — в главе 24. Кроме того, в связи с наблюдающимся в последнее время стремительным ростом World Wide Web и расширением области применения языка XML, проявляется значительный интерес к направлению научной деятельности, которое получило (не совсем удачное) название полуструктурированный подход. Полуструктурированные системы рассматриваются в главе 27.

1.3.      РЕЗЮМЕ

Итак, подведем итог обсуждению основных вопросов. Систему баз данных можно рассматривать как компьютеризированную систему хранения записей. Такая система включает  сами  по  себе  данные  (хранимые  в  базе  данных),  аппаратное  обеспечение, программное обеспечение (в частности, систему  управления базами данных, или СУБД), а также пользователей (что наиболее  важно). Пользователи, в свою очередь, подразделяются   на   прикладных    программистов,   конечных    пользователей   и администраторов базы данных, или АБД. Последние отвечают за администрирование базы    данных    и    всей    системы    баз    данных   в   соответствии   с   требованиями, устанавливаемыми администратором данных.

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

7 Отделение разработки СУБД компании Informix Software, Inc. было приобретено корпорацией IBM в 2001 году.

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

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

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

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

по-видимому, не изменится в обозримом будущем). Мы рассмотрели несколько примеров использования языка SQL — стандартного языка для работы с реляционными системами (в частности, были приведены примеры операторов  SELECT, INSERT, DELETE И UPDATE этого языка). Материал данной книги в значительной мере ориентирован на реляционные системы и в меньшей мере — на сам язык SQL (по причинам, указанным в предисловии).

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии