
- •Isbn 5-8459-0138-3 (рус) isbn 0-201-38590-2 (англ)
- •Глава 2. Архитектура системы баз данных 65
- •Глава 6. Реляционная алгебра 192
- •Глава 7. Реляционное исчисление 243
- •Глава 8. Целостность данных 301
- •Глава 9. Представления 350
- •Часть 111
- •Часть IV
- •Глава 14. Восстановление 544 14.1. Введение 544
- •Глава 15. Параллельность 566
- •Часть V
- •Глава 16. Защита данных 602
- •Глава 17. Оптимизация 639
- •Глава 18. Отсутствующая информация 693
- •Глава 19. Наследование типов 725
- •Глава 20. Распределенные базы данных 767
- •Глава 21. Поддержка принятия решений 813
- •Глава 22. Хронологические базы данных 853
- •Глава 23. Логические системы управления базами данных 899
- •Часть VI
- •Глава 24. Объектные базы данных 944
- •Глава 25. Объектно-реляционные базы данных 999
- •Часть I (четыре главы) — это обширное введение в теорию баз данных вообще и реляционных баз данных в частности. Здесь также излагаются основы стандартно- го языка баз данных sql.
- •Часть IV. Две главы данной части — это несколько пересмотренные и расширен- ные версии глав 13 и 14 предыдущего издания.
- •Часть VI. Глава 24 является полностью переписанной и значительно улучшенной версией глав 22-24. Глава 25 почти полностью обновлена.
- •Часть I
- •Часть I состоит из четырех вводных глав.
- •1.1. Вводный пример
- •1.2. Что такое система баз данных
- •1.3. Что такое база данных Перманентные данные
- •1.4. Назначение баз данных
- •1.5. Независимость данных
- •1.6. Реляционные и другие системы
- •1.7. Резюме
- •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.1. Введение
- •3.2. Реляционная модель
- •3.3. Отношения и переменные-отношения
- •3.4. Смысл отношений
- •3.5. Оптимизация
- •3.6. Каталог
- •3.7. Базовые переменные-отношения и представления
- •3.8. Транзакции
- •3.9. База данных поставщиков и деталей
- •3.10. Резюме
- •Глава 4
- •4.1. Введение
- •4.2. Обзор языка sql
- •4.3. Каталог
- •4.4. Представления
- •4.5. Транзакции
- •4.6. Внедрение sql-операторов
- •4.7. Несовершенство языка sql
- •4.8. Резюме
- •Часть 9. Управление внешними данными (sql/med) Часть 10. Связь с объектным языком (sql/olb)
- •Часть II
- •Глава 5
- •5.1. Введение
- •5.2. Домены
- •5.3. Значения отношений
- •5.4. Переменные-отношения
- •5.5. Средства sql
- •5.6. Резюме
- •6.1. Введение
- •6.2. Реляционная замкнутость
- •6.3. Синтаксис
- •6.4. Семантика
- •6.5. Примеры
- •6.5.1. Получить имена поставщиков детали с номером 'р2'
- •6.5.2. Получить имена поставщиков по крайней мере одной красной детали
- •6.5.3. Получить имена поставщиков всех типов деталей
- •6.5.4. Получить номера поставщиков по крайней мере тех типов деталей, которые поставляет поставщик с номером 's2'
- •6.5.5. Получить все пары номеров поставщиков, находящихся в одном городе
- •6.5.6. Получить имена поставщиков, которые не поставляют деталь с номером 'р2'
- •6.6. Зачем нужна реляционная алгебра
- •6.7. Дополнительные операторы
- •6.8. Группирование и разгруппирование
- •6.9. Реляционные сравнения
- •6.10. Резюме
- •7.1. Введение
- •7.2. Исчисление кортежей
- •7.3. Примеры
- •7.3.5. Найти имена поставщиков по крайней мере одной детали, поставляемой поставщиком с номером 's2'
- •7.3.6. Выбрать имена поставщиков всех типов деталей
- •7.3.7. Определить имена поставщиков, которые не поставляют деталь с номером 'р2'
- •7.3.8. Определить номера поставщиков по крайней мере всех типов деталей, поставляемых поставщиком с номером *s2'
- •7.4. Сравнительный анализ реляционного исчисления и реляционной алгебры
- •7.5. Вычислительные возможности
- •7.5.1. Определить номера и вес в граммах всех типов деталей, вес которых превышает 10 ооо г
- •7.6.1. Выбрать номера поставщиков из Парижа со статусом, большим 20
- •7.7.1. Указать цвета деталей и названия городов, в которых находятся детали "не из Парижа" с весом, превышающим 10 фунтов
- •7.7.2. Для всех деталей указать номер и вес в граммах
- •7.7.3. Выбрать информацию обо всех парах поставщиков и деталей, находящихся в одном городе
- •7.7.4. Найти все пары названий городов, таких, что поставщик из первого города поставляет деталь, находящуюся во втором городе
- •7.7.5. Выбрать все пары номеров поставщиков, таких, что оба поставщика в каждой паре находятся
AN INTRODUCTION TO
Database Systems
SEVENTH EDITION
ВВЕДЕНИЕ В
системы
баз данных
СЕДЬМОЕ ИЗДАНИЕ
Москва • Санкт-Петербург • Киев 2001
К. Дж. Дейт
ББК 32.973.26-018.2.75 Д27
УДК 681.3.07
Издательский дом "Вильяме"
Перевод с английского канд.физ.-мат.наук Ю Г Гордиенко, В В Репецкого, А.В. Слепцова Под редакцией А.В. Слепцова
По общим вопросам обращайтесь в Издательский дом "Вильяме" по адресу: info@williamspublishing.com, http://www.williamspublishing com
Дейт, К., Дж.
Д27 Введение в системы баз данных, 7-е издание.: Пер. с англ. — М. : Издательский дом "Вильяме", 2001. — 1072 с. : ил. — Парал. тит. англ.
ISBN 5-8459-0138-3 (рус.)
Новое издание фундаментального труда Криса Дейта— одного из наиболее уважаемых во всем мире экспертов и мыслителей в области технологии баз данных — несомненно, вызовет интерес у программистов-профессионалов, научных работников и студентов, изучающих соответствующие курсы в высших учебных заведениях. Эта книга содержит исчерпывающее изложение как классических идей в области реляцион- ной теории, так и развернутое обсуждение наиболее современных практических решений и технологий в области проектирования, реализации и сопровождения баз данных. Несмотря на исключительную глубину рассмотрения предмета, материал излагается простым и ясным языком и сопровождается большим количеством практических примеров. Книга, безусловно, будет полезна всем, кому приходится иметь дело с базами данных или кто просто интересуется данной темой.
ББК 32.973.26-018.2.75
Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм
Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства Addison-Wesley Publishing Company, Inc
Authorized translation from the English language edition published by Addison-Wesley Publishing Company, Inc. Copyright © 2000
All rights reserved No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher
Russian language edition published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2001
Isbn 5-8459-0138-3 (рус) isbn 0-201-38590-2 (англ)
© Издательский дом "Вильяме", 2001 © Addison-Wesley Longman, lnc, 2000
Эта книга посвящается моей жене Линди и памяти моей матери Риме
Оглавление
Об авторе 23
Предисловие к седьмому изданию 24
ЧАСТЬ I. ОСНОВНЫЕ ПОНЯТИЯ 31
Глава 1. Базы данных и управление ими 32
Глава 2. Архитектура системы баз данных 65
Глава 3. Введение в реляционные базы данных 92
Глава 4. Введение в язык SQL 119
ЧАСТЬ I!. РЕЛЯЦИОННАЯ МОДЕЛЬ 149
Глава 5. Домены, отношения и базовые переменные-отношения 151
Глава 6. Реляционная алгебра 192
Глава 7. Реляционное исчисление 243
Глава 8. Целостность данных 301
Глава 9. Представления 350
ЧАСТЬ III. ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ 397
Глава 10. Функциональные зависимости 400
Глава 11. Дальнейшая нормализация: формы 1НФ, 2НФ, ЗНФ и НФБК 422 Глава 12. Дальнейшая нормализация: более высокие нормальные формы 469
Глава 13. Семантическое моделирование 505
ЧАСТЬ IV. УПРАВЛЕНИЕ ТРАНЗАКЦИЯМИ 543
Глава 14. Восстановление 544
Глава 15. Параллельность 566
ЧАСТЬ V. ДОПОЛНИТЕЛЬНЫЕ АСПЕКТЫ 601
Глава 16. Защита данных 602
Глава 17. Оптимизация 639
Глава 18. Отсутствующая информация 693
Глава 19. Наследование типов 725
Глава 20. Распределенные базы данных 767
Глава 21. Поддержка принятия решений 813
Глава 22. Хронологические базы данных 853
Глава 23. Логические системы управления базами данных 899
ЧАСТЬ VI. ОБЪЕКТНЫЕ И ОБЪЕКТНО-РЕЛЯЦИОННЫЕ
БАЗЫ ДАННЫХ 943
Глава 24. Объектные базы данных 944
Глава 25. Объектно-реляционные базы данных 999
ПРИЛОЖЕНИЯ 1027
Приложение А. Выражения языка SQL 1028
Приложение Б. Обзор языка SQL3 1041
Приложение В. Сокращения и специальные символы 1058
Содержание
Об авторе , 23
Предисловие к седьмому изданию 24
ЧАСТЬ I
Основные понятия 31
Глава 1. Базы данных и управление ими 32
Вводный пример 32
Что такое система баз данных 35
Данные 35
Аппаратное обеспечение 37
Программное обеспечение 38
Пользователи 39
1.3. Что такое база данных 40
Перманентные данные 40
Сущности и связи 41
Свойства 43
Данные и модели данных 44
1.4. Назначение баз данных 45
Администрирование данных и администрирование базы данных 46
Преимущества централизованного подхода к управлению данными 47
Независимость данных 50
Реляционные и другие системы 56
Резюме 59 Упражнения 59 Список литературы 61 Ответы к некоторым упражнениям 62
Глава 2. Архитектура системы баз данных 65
Введение 65
Три уровня архитектуры 65
Внешний уровень 68
Концептуальный уровень 72
Внутренний уровень 73
Отображения 74
Администратор базы данных 74
Система управления базой данных 77
Система управления передачей данных 81
Архитектура "клиент/сервер" 81
Утилиты 83
Распределенная обработка 84
Резюме 88
Упражнения 88
Список литературы 90
Глава 3. Введение в реляционные базы данных 92
Введение 92
Реляционная модель 92
Отношения и переменные-отношения 97
Смысл отношений 99
Оптимизация 101
Каталог 104
Базовые переменные-отношения и представления 105
Транзакции 109
База данных поставщиков и деталей 110
3.10. Резюме 113 Упражнения 115 Список литературы 116 Ответы к некоторым упражнениям 117
Глава 4. Введение в язык SQL 119
Введение 119
Обзор языка SQL 120
Каталог 124
Представления 125
Транзакции 126
Внедрение SQL-операторов 126
Операции, не использующие курсоры 130
Операции, использующие курсоры 131
Динамический SQL 134
Несовершенство языка SQL 136
Резюме 136 Упражнения 137 Список литературы 140 Ответы к некоторым упражнениям 145
ЧАСТЬ II
Реляционная модель 149
Глава 5. Домены, отношения и базовые переменные-отношения 151
Введение 151
Домены 152
Каждое значение имеет тип 154
Определение типа 155
Допустимые представления 156
Определение операторов 159
Преобразование типов 161
Заключительные замечания 162
5.3. Значения отношений 163
Свойства отношений 166
Атрибуты, значениями которых являются отношения 168
Отношения и их интерпретация 169
5.4. Переменные-отношения 169
Определение базовых переменных-отношений 169
Обновление переменных-отношений 171
5.5. Средства SQL 174
Домены 174
Базовые таблицы 177
5.6. Резюме 178 Упражнения 180 Список литературы 181 Ответы к некоторым упражнениям 185