Книга написана хорошо известными учеными
Станфордского университета Джеффри Ульманом и
Дженнифер Уидом. Авторы предлагают
ориентированный на пользователя подход к
системам БД, при котором основное внимание
уделяется проектированию и реализации
практических приложений.Материал книги будет
полезен всем, кто изучает БД. Здесь приводится
описание БД с точки зрения проектировщика,
пользователя и программиста. Авторы
рассматривают новейшие стандарты БД: SQL2, SQL3, ODMG
ODL/OQL, а также традиционный метод проектирования
БД, основанный на модели сущности-связи
(E/R-модели).
Четко изложенный материал
сопровождается интересными практическими
примерами.
Анализируется множество
аспектов программирования на языке SQL.
Сравниваются результаты
применения методов E/R-моделей и языка
определения объектов ODMG в проектировании БД.
Рассматривается
объектно-ориентированное и объектно-реляционное
программирование БД, в том числе действующий
стандарт ODMG для OODB и объектно-ориентированные
свойства SQL3.
Объясняются такие сложные
вопросы, имеющие важное значение для
проектировщиков БД и пользователей, как
пользовательские представления, ограничения
целостности, триггеры, транзакции,
информационная защита и рекурсия в SQL3.
Эта книга написана на основе лекций,
прочитанных в Станфордском университете для
курса "Введение в базы данных" CS145 — первого
из пяти.Впервые этот курс читал Артур Келлер. Он
делал акцент на аспектах систем БД, которые чаще
всего используются при изучении информатики: на
проектировании БД и программировании. В курс
включены также крупные действующие проекты, в
рамках которых студенты могут проектировать и
реализовывать приложения БД на практике.
Задания, связанные с этими проектами, домашние
задания, экзаменационные вопросы и другие
материалы курса можно найти на домашней странице
данной книги; см. раздел "Поддержка на World Wide
Web".
Данная книга рассчитана на учебный курс в один
семестр. Мы вынуждены пропустить или сократить
часть материала, в том числе по Datalog и сложным
аспектам программирования SQL, а также SQL3. Если в
рамках курса у вас есть действующий проект, важно
ознакомиться с SQL до того, как он появится в этой
книге. Отложить можно материал, касающийся Datalog,
разделы глав 5 и 6, посвященные SQL3, и частично
теорию, изложенную в главе 3 (впрочем, если вы
хотите создать хороший реляционный проект,
изучите вопросы нормализации и многозначные
зависимости прежде, чем приступите к
программированию на SQL).
Мы использовали материал этой книги в процессе
обучения студентов старших курсов и аспирантов.
Формально для освоения этого курса требуется
предварительная подготовка по структурам
данных, алгоритмам и дискретной математике, а
также по системам ПО, разработке ПО и языкам
программирования. Важно, чтобы студенты имели
хотя бы минимальные знания об алгебраических
выражениях и законах, логике, базовых структурах
данных типа деревьев поиска, понятиях
объектно-ориентированного программирования и о
средах программирования.
Практически в каждый раздел этой книги
включены упражнения. Трудные упражнения или
части упражнений отмечены восклицательным
знаком, а самые сложные — двумя восклицательными
знаками. Некоторые упражнения выделяются
звездочкой — для них мы предлагаем решения,
доступные на Web-странице данной книги. Их следует
использовать для самопроверки. Заметим, что в
некоторых случаях упражнение В требует
модификации или адаптации вашего решения для
упражнения А. Если определенные части А имеют
решения, можно считать, что соответствующие
части В тоже имеют решения.
Содержание
Глава 1 Миры систем баз данных
1.1 Эволюция систем БД
1.2 Архитектура СУБД
1.3 Будущее систем БД
1.4 Краткий обзор книги
1.5 Итоги
1.6 Литература к главе 1
Глава 2 Моделирование базы
данных
2.1 Введение в ODL
2.2 Диаграммы сущности-связи
2.3 Принципы проектирования
2.4 Подклассы
2.5 Моделирование ограничений
2.6 Слабые множества сущностей
2.7 Модели, представляющие исторический
интерес
2.8 Итоги
2.9 Литература к главе 2
Глава 3 Реляционные модели
данных
3.1 Основы реляционной модели
3.2 Переход от проектов ODL к реляционным
проектам
3.3 Переход от E/R-диаграмм к реляционным
проектам
3.4 Преобразование структур подклассовв
отношения
3.5 Функциональные зависимости
3.6 Правила функциональной зависимости
3.7 Разработка схем реляционных БД
3.8 Многозначные зависимости
3.9 Пример схемы БД
3.10 Итоги
3.11 Литература к главе 3
Глава 4 Операции в реляционной
модели
4.1 Алгебра реляционных
операций
4.2 Логика отношений
4.3 Переход от реляционной алгебры к Datalog
4.4 Рекурсивное программирование в Datalog
4.5 Ограничения на отношения
4.6 Реляционные операции на
мультимножествах
4.7 Другие расширения реляционной
модели
4.8 Итоги
4.9 Литература к главе 4
Глава 5 Язык баз данных SQL
5.1 Простые запросы в SQL
5.2 Запросы, содержащие более одного
отношения
5.3 Подзапросы
5.4 Дубликаты
5.5 Агрегация
5.6 Изменения базы данных
5.7 Определение схемы отношения в SQL
5.8 Определения пользовательских
представлений
5.9 Пустые значения и внешние соединения
5.10 Рекурсия в SQL
5.11 Итоги
5.12 Литература к главе 5
Глава 6 Ограничения и триггеры
в SQL
6.1 Ключи в SQL
6.2 Ссылочная целостность и внешние
ключи
6.3 Ограничения на значения атрибутов
6.4 Глобальные ограничения
6.5 Изменение ограничений
6.6 Триггеры в SQL3
6.7 Итоги
6.8 Литература к главе 6
Глава 7 Системные аспекты SQL
7.1 SQL в среде программирования
7.2 Транзакции в SQL
7.3 Среда SQL
7.4 Защита и авторизация пользователя в
SQL2
7.5 Итоги
7.6 Литература к главе 7
Глава 8
Объектно-ориентированные языки запросов
8.1 Свойства ODL, связанные с
запросами
8.2 Введение в OQL
8.3 Дополнительные формы выражений OQL
8.4 Создание и назначение объектов в OQL
8.5 Объекты кортежей в SQL3
8.6 Абстрактные типы данных в SQL3
8.7 Сравнение подходов ODL/OQL и SQL3
8.8 Итоги
8.9 Литература к главе 8 |