Базы данных



Аннотация

В курсе обсуждаются общие вопросы систем управления базами данных (СУБД) и основы реляционных баз данных: введение в реляционные СУБД (РСУБД), основные функциональные компоненты РСУБД, введение в язык реляционных баз данных SQL. Подробно обсуждаются вопросы проектиро­вания РСУБД.

Содержание курса.

Понятие базы данных (БД) и систем управления БД (СУБД). Области приложений баз данных. Интерфейсы СУБД для обеспечения интерактивно­го доступа к данным и создания прикладных программ. Языки запросов, зап­росы через формы. Типичные функции СУБД. Понятия транзакции, целостности и защищенности данных. Концептуальные модели данных. Типы мо­делей БД (иерархические, сетевые, реляционные).
Реляционные БД. Реляционная модель данных. Реляционная алгебра и реляционное исчисление. Нормальные формы отношений.
Язык баз данных SQL. Основные средства манипулирования данными. Средства управления и изменения схемы базы данных, определения ограниче­ний целостности, представлений базы данных, привилегий доступа к данным.
Проектирование реляционных баз данных. Задачи проектирования. Про­ектирование реляционных баз данных с использованием методов нормали­зации. Преимущества и недостатки нормализованных отношений с точки зрения практики. Семантические модели данных и проектирование реляци­онных баз данных с использованием этих моделей. Диаграммы «сущность-связи», основные понятия, методика реляционных баз данных на основе модели «сущность-связь».
Основные функции СУБД: управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями, журнализация изменений базы данных, восстановление после сбоев, поддержка языков баз данных. Логическая структура реляционных СУБД (компилятор языка запросов, ядро, утилиты), разделение функций. Компоненты ядра. Клиентская и серверная части реляционной СУБД.
Структуры данных реляционной базы данных. Способы хранения отно­шений, адресация кортежей, распределение памяти, хранение BLOB'ob (Binary Large Objects). Основные подходы к организации индексов (В деревья и механизмы хэширования), кластеризация отношений, организация журнальной информации. Связь понятия транзакции с понятиями целостно­сти базы данных и изолированности пользователей. Разновидности конфлик­тов транзакций и уровни изолированности пользователей. Сериализация транзакций. Методы управления транзакциями и их сериализацией (двухфаз­ный протокол синхронизационных блокировок, метод временных меток). Гранулированные и предикатные блокировки. Синхронизационные тупики и способы их разрешения.
Журнализация. Разновидности журналов (индивидуальные журналы транзакций, логические журналы, физические журналы. Протокол WAL (Write Ahead Log). Связь с управлением буферами оперативной памяти. Ар­хивные копии базы данных. Разновидности сбоев (аварийное завершение транзакции, мягкие сбои, жесткие сбои). Задачи и методы восстановления баз данных после сбоев.
Возможности использования языка SQL при прикладном программиро­вании. Язык модулей и встраиваемый SQL. Операции SQL для работы с кур­сорами. Динамический SQL (операции подготовки, операции вызова подго­товленных операторов, параметризация, особенности работы с курсорами, подготавливаемые операции обновления и удаления).

Литература

  • Дейт К.Дж. Введение в системы баз данных. М.-Киев: Диалектика. 1998.

  • Дейт К. Руководство по реляционной СУБД DB2. М.: Финансы и стати­стика. 1988.

  • Ульман Дж. Основы систем баз данных. М.: Финансы и статистика. 1983.

  • Цикритзис Д., Лоховски К. Модели и базы данных. М.: Финансы и ста­тистика. 1984.

  • Мейер Д. Теория реляционных баз данных. М.: Мир. 1986.

  • Кузнецов С.Д. Введение в СУБД // Системы управления базами данных. М.: ВИМКОМ. 1995, 1996.