
- •Часть 1
- •Глава 1. Управление базами данных.
- •1.1. Вводный пример
- •1.2. Что такое система баз данных
- •1.3. Что такое база данных
- •Свойства
- •1.4. Почему база данных
- •1.5.Независимость данных
- •1.6. Реляционные и другие системы
- •1.7. Резюме
- •1.5. А)
- •Глава 2.
- •2.1. Цель
- •2.2. Три уровня архитектуры
- •2.3. Внешний уровень
- •2.4. Концептуальный уровень
- •2.5. Внутренний уровень
- •2.6. Отображения
- •2.7. Администратор базы данных
- •2.8. Система управления базой данных
- •2.9. Система управления передачей данных
- •2.10. Архитектура клиент/сервер
- •2.11. Утилиты
- •2.12. Распределенная обработка
- •2.13. Резюме
- •Глава 3.
- •3.1. Введение
- •3.2. Реляционные системы
- •3.3. Замечание относительно терминологии
- •3.4. Реляционная модель
- •3.5. Оптимизация
- •3.6. Каталог
- •3.7. Базовые таблицы и представления
- •3.8. Язык sql
- •3.9. База данных поставщиков и деталей
- •3.10. Резюме
1.6. Реляционные и другие системы
Почти все продукты баз данных, созданные с конца 70-х годов, основаны на подходе, который называют реляционным (relational); более того, подавляющее большинство научных исследований в области баз данных в течение последних 25 лет проводилось (возможно, косвенно) в этом направлении. На самом деле, реляционный подход представляет собой основную тенденцию сегодняшнего рынка, и реляционная модель— единственная наиболее существенная разработка в истории развития баз данных. По этим причинам, а также учитывая, что реляционная модель основана на некоторых математических аспектах и, следовательно, идеально подходит для изложения концепций и принципов систем баз данных, основное внимание в этой книге уделяется реляционным системам и реляционному подходу.
Что мы подразумеваем под реляционной системой? К сожалению, на этом этапе обсуждения невозможно дать полный ответ на этот вопрос; однако можно (и нужно!) дать грубый приблизительный ответ, который в дальнейшем будет существенно уточнен. Итак, вкратце, реляционная система — это система, основанная на следующих принципах:
1) данные для пользователя передаются в виде таблиц (и никак иначе);
2) пользователю предоставляются операторы (например, для выборки данных), генерирующие новые таблицы из старых. Например, в системе будет оператор получения подмножества строк в данной таблице и оператор получения подмножества столбцов — а подмножество строк и подмножество столбцов, конечно, можно рассматривать как новые таблицы.
Причина, по которой такие системы называют реляционными, в том, что английский термин "relation" (отношение), по существу, просто математическое название для таблицы. Поэтому на практике в большинстве случаев термины "отношение" и "таблица" можно считать синонимами. Обсуждение этого вопроса будет продолжено далее в этой книге.
Как уже отмечалось, в дальнейшем будет дано более точное определение, а сейчас мы будем использовать данное. Рис. 1.8 иллюстрирует вышесказанное. Данные на рис. 1.8,а состоят из одной таблицы под названием CELLAR (на самом деле это версия таблицы CELLAR с рис. 1.1, уменьшенная для того, чтобы с ней легче было работать). Два примера выборки — один с получением подмножества строк и второй с получением подмножества столбцов — показаны на рис. 1.8,б.
а) Дана таблица:CELLAR
|
|
| |||
WINE
|
YEAR
|
BOTTLES
| |||
Chardonnay Fume Blanc Pinet Noir Zinfandel
|
91 91 88 89
|
4 2 3 9 | |||
| |||||
б) Примеры применения операторов:
2. Подмножество столбцов: SELECT WINE, BOTTLES FRCM CELLAR ;
|
результат: |
| |||
WINE
|
YEAR
|
BOTTLES
| |||
Chardonnay Fume Blanc
|
91 91
|
4 2
| |||
|
|
| |||
WINE
|
BOTTLES
| ||||
Chardonnay Fume Blanc Pinet Noir Zinfandel
|
4 2 3 9
| ||||
|
Рис. 1.8. Структура данных и операторы в реляционной системе (примеры)
Замечание. Эти выборки выполнены с помощью оператора select языка SQL, упомянутого выше в этой главе.
Теперь можно различать реляционные и нереляционные системы по следующим признакам. Как уже отмечалось, пользователь реляционной системы видит данные, представленные в таблицах и никак иначе. Пользователь нереляционной системы, напротив, видит данные, представленные в других структурах вместо таблиц реляционной системы или наряду с ними. И для работы с этими другими структурами применяются другие операции. Например, в иерархической системе данные представлены пользователю в форме набора древовидных структур ("иерархий"), а среди операций работы с иерархическими структурами есть операции перемещения по иерархическим путями вниз и вверх по деревьям.
Рассмотрим этот вопрос немного подробнее. На практике системы баз данных могут быть легко распределены по категориям в соответствии со структурами данных и операторами, которые они предоставляют пользователю. Прежде всего, старые (дореляционные) системы можно разделить на три большие категории, а именно: системы инвертированных списков, иерархические и сетевые.Приведем примеры коммерческих продуктов, которые можно отнести к перечисленным категориям.
Системы инвертированных списков: CA-DATACOM/DB компании Computer Associates International Inc. (ранее был известен как DATACOM/DB компании Applied Data Research).
Иерархические системы: IMS корпорации IBM.
Сетевые. CA-IDMS/DB компании Computer Associates International Inc. (ранее был известен как IDMS компании Cullinet Software inc.).
Первые реляционные продукты начали появляться в конце 1970-х— начале 1980-х годов. Во время написания этой книги (1993 год) существовало более 100, а возможно более 200 коммерческих реляционных продуктов, предназначенных для работы с любым программным и аппаратным обеспечением, которое можно себе представить. Среди них DB2 корпорации IBM; Rdb/VMS корпорации Digital Equipment; ORACLE корпорации Oracle; INGRES компании Ingres Division of The ASK Group Inc.; SYBASE компании Sybase Inc. и многие другие.
Несколько позже исследования велись в направлении так называемых "постреляционных" систем, некоторые из них основаны на совместимых снизу вверх расширениях оригинального реляционного подхода, другие представляют собой попытки сделать что-то совершенно отличное. Мы перечислим лишь некоторые наиболее поздние из них, дав их названия и даже не пытаясь выяснить, что эти названия означают или чего хотели достичь исследователи.
• Дедуктивные СУБД.
• Экспертные СУБД.
• Расширяемые СУБД.
• Объектно-ориентированные СУБД.
• Семантические СУБД.
• Универсальные реляционные СУБД.
Начали появляться отдельные продукты, которые можно отнести к категории объектно-ориентированных систем; сюда можно отнести GemStone корпорации Servio, ObjectStore корпорации Object Design и OpenODB корпооации Hewlett-Pаскard.
В последующих частях книги мы рассмотрим некоторые из этих новых направлений, особенно объектно-ориентированные системы.