Базы данных
Специальность: Программная инженерия
Преподаватель: Шапошников Д.Е.
Цель данного курса состоит в формировании концептуальных представления об основных принципах построения баз данных, систем управления базами данных; о математических моделях, описывающих базу данных; о принципах проектирования баз данных; а также анализе основных технологий реализации баз данных.
Главной задачей изучения дисциплины является представление слушателю фундаментальных понятий, лежащих в основе баз данных и систем управления базами данных, и иллюстрация способов реализации соответствующих понятий в конкретных программных системах.
Содержание
- Введение в базы данных. Общая характеристика основных понятий обработки данных. Развитие основных понятий представления данных. Основные понятия программирования, связанные с данными. Понятие переменной, понятие массива. Появление новых понятий программирования (поле, запись, файл) как следствие расширения круга решаемых задач и их отражения в системах программирования. Использование несколькими задачами общих данных. Интегрирование данных. База данных.
- Системы управления базами данных как интерфейс между прикладными программами и базами данных. Краткий обзор наиболее распространенных СУБД для персональных ЭВМ. Основные функции систем управления базами данных с иллюстрацией сценариев их реализации в конкретных СУБД. Банк данных. Требования, предъявляемые к современным средствам хранения данных. Краткий обзор литературы и других доступных источников.
- Различные представления о данных в базах данных. Модели обрабатываемых данных (внешнее представление, концептуальная модель, структура хранения).
- Различные модели организации работы пользователей с базой данных. Модель с централизованной архитектурой. Модель с автономным персональными ЭВМ. Модель вычислений с сетью и файловым сервером (Архитектура «файл-сервер»). Распределенная модель вычислений (Архитектура «клиент-сервер»). Распределенная модель вычислений.
- Обзор СУБД. Персональные СУБД. Серверные СУБД.
- Основные этапы проектирования базы данных. Жизненный цикл базы данных (создание, апробация, исправление ошибок, опытная эксплуатация, сопровождение). Структуры хранения данных как основа базы данных.
- Проблема целостности базы данных. Транзакции и блокировки.
- Концептуальное моделирование базы данных. Формальное описание предметной области. Основные используемые понятия (сущность, связь, типы связей).
- Описание информационного представления предметной области. Атрибуты. Описание информационных потребностей пользователя Ключи. Типы запросов. Построение ER-диаграмм. Выявление и моделирование сущностей и связей.
- Построение концептуальной модели. Моделирование локальных представлений Варьирование понятиями «Атрибут», «Сущность», «Связь». Объединение локальных моделей Идентичность. Агрегация. Обобщение. Пример построения диаграммы «Сущность-Связь». Ограничения целостности Внешние ограничения. Ограничения, описанные с помощью специальных конструкций.
- Средства автоматизированного проектирования концептуальной модели. Примеры использования CASE- средств.
- Модели данных СУБД как инструмент представления концептуальной модели. Общие представления о модели данных. Основные используемые понятия (элемент, запись, файл, группа). Основные составляющие описания. Сетевая модель данных Представление связей. Иерархическая модель данных Представление связей. Реляционная модель данных. Многомерная модель данных. OLAP-технология.
- Формализация реляционной модели. Формализованное описание отношений и схемы отношений Свойства отношений. Манипулирование данными в реляционной модели Реляционная алгебра. Реляционное исчисление.
- Операции реляционной алгебры. Примеры представления запросов как последовательность формальных операций реляционной алгебры. Использование формального аппарата для оптимизации схем отношений. Проблема выбора рациональных схем отношений Нормальные формы. Первая нормальная форма. Функциональные зависимости (зависимости между атрибутами отношения). Ключи. Правила вывода. Декомпозиция схемы отношения. Выбор рационального набора схем отношений путем нормализации Вторая нормальная форма. Третья нормальная форма. Нормальная форма Бойса-Кодда. Пример нормализации до 3НФ. Целостная часть реляционной модели. Реализация условия целостности данных в современных СУБД.
- Анализ современной технологии реализации баз данных. Языки и стандарты. Структура современной СУБД на примере My Архитектура базы данных. Физический и логический уровни данных.
- Программное окружение БД. Проблемы доступа и обработки данных. Навигационный подход. Подход, основанный на использовании интерпретируемых языков запросов.
- Понятие языка SQL и его основные части. История возникновения и стандарты языка SQL. Достоинства языка SQL. Разновидности SQL. Понятие интерактивного SQL. Элементы интерактивного SQL. Использование SQL для манипулирования данными. Использование SQL для выбора информации из таблицы. Использование SQL для выбора информации из нескольких таблиц. Использование SQL для вставки, редактирования и удаления данных в таблицах. Язык SQL и операции реляционной алгебры. Программный (встроенный) SQL. Статический SQL. Динамический SQL. Интерфейсы программирования приложений (API). DB-Library, ODBC, OCI, JDBC. Библиотека DB-Library. Протокол ODBC. Протокол OCI. Протокол JDBC.
- Тенденции развития баз данных. Объектно-ориентированные базы данных. Распределенные базы данных.
Лабораторный практикум
- Лабораторная работа №1. Цель работы: приобретение навыков анализа предметной области.
- Лабораторная работа №2. Цель работы: приобретение навыков моделирования предметной об-ласти, представленной в виде структурированных наборов данных, в рамках реляционной модели и ее реализации в MS Access.
- Лабораторная работа №3. Цель работы: выборка данных из таблиц. Добавление, удаление, редактирование информации. Приобретение практических навыков использования языка SQL.
- Лабораторная работа №4. Цель работы: разработка интерфейса пользователя. Создание форм.
- Лабораторная работа №5. Цель работы: приобретение практических навыков анализа и моделирования предметной области; ознакомление с работой специализированных CASE-средств. Приобретение начальных навыков работы с СУБД, работающими в рамках архитектуры «Клиент-Сервер». Перенос задачи в среду «Клиент-Сервер».
- Лабораторная работа №6. Цель работы: приобретение навыков внесения необходимых изменений в программный код после изменения модели предметной области и переноса задачи в среду «Клиент-Сервер».
Литература
a) основная литература:
- Швецов В.И., Визгунов А.Н., Мееров И.Б. Базы данных. Учебное пособие. Нижний Новгород: изд-во ННГУ, 2004. – 217 с.
- Грабер М. Введение в SQL. - М.: Лори, 1997. – 548с.
- К. Дж. Дейт. Введение в системы баз данных. Шестое издание. Изд-во: Вильямс. 1999, 848 c.
- Фадеенков Е. Основы использования WWW - технологий для доступа к существующим базам данных (http://citforum.ru/database/cnit/1.shtml).
б) дополнительная литература:
- Грофф Дж., Вайнберг П. Энциклопедия SQL. 3-е изд. СПб.: Питер, 2003.
- Джейсон С. Каучмэн, Ульрике Швинн. Oracle8i Certified Profes-sional DBA Подготовка администраторов баз данных. Пер. с англ. – М.: издательство «Лори», 2002.
- Карпова Т. Базы данных. Модели, разработка, реализация. СПб.: Питер, 2001. – 304 с.
- Крёнке Д. Теория и практика построения баз данных. 8-е изд. – СПб: Питер, 2003. – 800 с.
- Мамаев Е. Microsoft SQL Server 2000 в подлиннике. СПб.: Изд-во BHV, 2001.
- Хотка Дэн, Oracle 9i: Пер. с англ. – СПб.: ООО «ДиаСофтЮП», 2002. – 560с.
в) программное обеспечение и Интернет-ресурсы:
- Зеленков Ю.А. Введение в базы данных http://www.vsma.ac.ru/ ~pbarm/libraru/books/ db/toc.html.
- Кириллов В.В. Основы проектирования баз данных. Учебное пособие. Сервер FORUM http://www.citforum.ru.
- Кузнецов С.Д. Основы современных баз данных http://www.citforum.ru.
- Кузнецов С. Будущие направления исследований в области баз данных: десять лет спустя. http://www.citforum.ru.
- Кузнецов С. Объектно-ориентированные базы данных – основные концепции, организация и управление: краткий обзор. http://www.citforum.ru.
- Трифонов Ю.В., Визгунов А.Н. Методические указания по выпол-нению лабораторных работ (курс «Базы данных и знаний»). Ч.1. Фонд компьютерных изданий Нижегородского государственного университета, 2001. (http://www.unn.ru/rus/books/table.html).
- Сайт Oracle http://www.oracle.com
- Сайт Sybase http://www.sybase.com.
- Сайт компании IBM в России http://www.ibm.com/ru.
- Сайт компании Interface ltd http://www.interface.ru.
- Шнитман В.З., Кузнецов С.Д. Серверы корпоративных баз данных. http://www.emanual.ru.
- Сайт «Открытые системы» http://www.osp.ru.
- Сайт «CIT Forum» http://www.citforum.ru
Отчетность
- Семестр 4: Зач