Программа дисциплины Технологии баз данных Цель и задачи курса Цель дисциплины «Технологии баз данных» - изучение основных концепций, методов и средств построения и использования баз данных. В курсе рассматривается генезис и современное состояние данной области, типовая организация систем управления базами данных, модели данных, принципы построения информационных систем на основе технологий баз данных, теоретические основы реляционных баз данных, язык SQL и его стандартизация, организация call-интерфейсов для работы с базами данных, промышленный стандарт прикладного интерфейса ODBC и его применение. Кроме этого, в курсе рассматриваются методы управления транзакциями в распределенных базах данных, распределенные информационные системы с архитектурой "клиент-сервер" и принципы их построения, концепция и характерные черты объектно-ориентированных и интеллектуальных баз данных. 1. 1. Информационные системы, файловые системы, базы данных 2. Генезис информационных и информационно-поисковых систем, систем управления документооборотом, систем на основе плоских и структурированных файлов, баз данных, распределенных информационных систем. Накопление и представление информации; анализ и индексация; поиск, выборка, связывание, навигация; конфиденциальность, целостность, безопасность и защищенность, сохранность; масштабируемость, производительность, эффективность. 3. 2. Функции и типовая организация систем управления базами данных (СУБД) 4. Основные функции СУБД, управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями, журналы. Архитектура СУБД ANSI/SPARC. Классификация СУБД: системы, основанные на инвертированных списках, иерархические системы, сетевые системы, реляционные и постреляционные СУБД. 5. 3. Модели данных в СУБД 6. Классические модели данных в СУБД. Иерархическая модель данных, навигационные операции. Сетевая модель данных, навигационные операции. Реляционные модели данных, реляционная алгебра и реляционные отношения. CASE-средства для описания модели данных и автоматизации процесса проектирования прикладных информационных систем. 7. 4. Жизненный цикл и методология проектирования информационных систем 8. Принципы проектирования информационных систем. Структурный анализ предметной области, логическое проектирование баз данных, физическое проектирование баз данных, словари-справочники данных. 9. 5. Теоретические основы реляционного подхода 10. Базовые определения реляционных баз данных: тип данных, домен, схема отношения, схема базы данных, кортежи и отношения, свойства отношений, ключи. Представление отношений. Целостность и ограничения целостности. Семантическое моделирование данных, ER-диаграммы. 11. 6. Механизмы манипулирования реляционными данными и методы проектирования реляционных баз данных 12. Базис реляционной модели данных: интерпретация реляционных операций, особенности семантики теоретико-множественных операций, специальные реляционные операции. Проектирование реляционных баз данных с использованием нормализации. Классификация нормальных форм. Третья нормальная форма. Более высокие уровни нормализации. 13. 7. Стандартизация интерфейса для СУБД. Стандарт языка SQL 14. Общие подходы к стандартизации интерфейса с реляционными базами данных. Языки SQL и QBЕ. Общая структура языка SQL, интерфейс с прикладными программами. Встроенный SQL, динамический SQL. 15. 8. Основные операторы языка SQL 16. Оператор выборки SELECT, фильтрация выборки - клауза WHERE, агрегатные функции, клауза HAVING. Оператор добавления данных INSERT. Оператор удаления данных DELETE. Оператор объединения UNION. Внутренний и внешний операторы JOIN, левосторонние и правосторонние операции. 17. 9. Оптимизация запросов при использовании SQL 18. Оптимизация запросов. Использование индексов. Блокировки при обработке транзакций. Общая схема обработки запроса, синтаксическая оптимизация запросов, логические преобразования запросов, преобразования запросов с изменением порядка реляционных операций, упрощение запросов со вложенными подзапросами, преобразования запросов на основе семантической информации. Генерация планов, оценка стоимости плана запроса. 19. 10. Использование SQL при разработке приложений 20. Программирование с использованием встроенного SQL. Операторы манипулирования данными. Курсоры, динамический и статический SQL. Сохраненные процедуры. 21. 11. Call-интерфейсы (db-library), стандарты ODBC и JDBC 22. Организация call-интерфейсов, примеры использования. Описание организации ODBC, описание уровней стандартов Core, Level 1, Level 2. Примеры программирования с использованием API ODBC и JDBC. 23. 12. Структуры внешней управление транзакциями памяти, методы организации индексов, 24. Хранение отношений, индексы, журналы и служебная информация. Транзакции. Свойства ACID. Транзакции и целостность баз данных, изолированность пользователей, управление транзакциями. Многофазные транзакции. Репликация данных. 25. 13. Распределенные базы данных и архитектура "клиент-сервер" 26. Классификация распределенных СУБД. Распределенные информационные системы с архитектурой "клиент-сервер". Принципы взаимодействия между клиентскими и серверными частями, протоколы удаленного вызова процедур. 27. 14. Постреляционные базы данных 28. Концепция и архитектура объектно-ориентированных баз данных. Их сравнение с реляционными базами данных. Объектно-ориентированные расширения SQL (SQL-3). Принципы построения объектно-ориентированных баз данных. Активные базы данных. 29. Литература 1. 2. 3. 4. 5. 6. 7. Э. Озкарахан. Машины баз данных и управление базами данных. М.:Мир, 1989. Т. Тиори, Дж. Фрай. Проектирование структур баз данных. М.:Мир, 1985 Д. Мейер. Теория реляционных баз данных. М.:Мир, 1987 Дж. Ульман. Основы систем баз данных. М.:Финансы и статистика, 1983 К. Дейт. Введение в системы баз данных. М.:Наука, 1980 Д. Цикридзис, Ф. Лоховски. Модели данных. М.:Финансы и статистика К. Дейт Руководство по реляционной СУБВ DB2. М.:Финансы и статистика, 1988. 8. М. Грабер. Введение в SQL. М.:Лори, 1996. 9. Р. Сигнор, М.Стегман. Использование ODBC для доступа к базам данных. М.:Бином, 1995. 10. Martin J. and J. Lebel. Client/Server Databases Enterorise Computing. Prentice Hall PTR Upper Saddle River, New Jersey 07458, 1997, p.352.