Московский инженерно-физический институт
(государственный университет)

“Базы данных”

Программа курса
для специальности «Прикладная информатика» 

Составители:	к.т.н. Голицына О.Л., 
проф., д.т.н. Максимов Н.В.,
доц., к.т.н. Прохоров И.В.

Москва 2007

Цель курса – изучение общесистемных и прикладных основ баз данных, практическое освоение средств моделирования, разработки и администрирования БД, а также разработки приложений управления доступом к информационным массивам.

Задачи курса - формирование у студентов понимания 
•	принципа независимости – разделения объектов логического и физического уровня - в качестве универсальной основы формализованного представления информации в системах обработки;
•	действенности правила рациональности (целесообразности решений) организации информационной системы: эффективность обработки данных достигается путем специализации системы, в том числе сведением прикладных задач к типовым решениям, базирующимся на типовых моделях данных. При этом типология моделей данных отражает эволюцию взглядов человека на разделение между человеком и системой задач по управлению процессами обработки информации.

Задачами методологического и прикладного уровня являются изучение:
•	принципов и типовых подходов к организации баз данных в вычислительных системах;
•	методологических основ и моделей данных, используемых для проектирования и разработки БД;
•	основ и средств управления и администрирования СУБД.

Место курса в системе образования
Курс базируется на материале дисциплин «Основы алгоритмизации и программирования», «Дискретная математика» и служит методологической основой для курсов «Информационные системы», «Проектирование информационных систем», «Интеллектуальные информационные системы», «Реинжиниринг информационных систем».

Требования к уровню освоения содержания курса
В результате изучения курса студенты должны:
•	знать типологию и методологию проектирования баз данных, уметь классифицировать информационные задачи, решаемые с использованием баз данных;
•	владеть системным подходом как методологической основой проектирования информационных систем, использующих базы данных;
•	знать особенности моделирования и проектирования фактографических и документальных баз данных;
•	иметь практические навыки разработки баз данных;
•	иметь представление о целях и средствах разработки и администрирования баз данных.

В составе курса 4 раздела:
1.	Введение в базы данных и автоматизированные информационные системы.
2.	Моделирование и проектирование БД. 
3.	Управление базами данных.
4.	Эксплуатация и разработка приложений БД.

Раздел 1. Введение в базы данных 
и автоматизированные информационные системы
Тема 1. Определение и типология БД
Определение базы данных (БД) и банка данных (БнД). Автоматизированные информационные системы и базы данных в науке, управлении, производстве, маркетинге. Назначение, состав и структура БнД: информационное, программное, лингвистическое, техническое и организационно-методическое обеспечение. Основные категории и функции пользователей баз данных.
Типология баз данных. Фактографические и документальные БД.  БД оперативной и ретроспективной информации. Хранилища данных. Локальные и распределенные БД. Соотношение основных требований и свойств СУБД: система компромиссов.
Цель, задачи и структура курса. 

Тема 2. Методологические основы БД
Соотношение понятий «информация», «данные», «знания». Хорошо и слабоструктурированная информация Семантические проблемы идентификации объектов и связей предметной области (ПрО). Абстракция как основа описания предметной области. Понятие «точной» и «лингвистической» переменной. Типология свойств и связей: единичные/множественные, статические/динамические, условные. Особенности отражения свойств объектов, изменяющихся во времени.
Теоретические основы реляционных БД. Реляционная алгебра и реляционное исчисление. Основные операции реляционной алгебры и реляционного исчисления. 
Теоретические основы документальных БД. Теоретико-множественная модель индексирования и поиска. Линейное описание информационных массивов. Схема процессов в абстрактной АИПС.  Критерий смыслового соответствия. Логическая структура документальной АИС на примере документальной АИПС Irbis и документо-ориентированной базы данных Lotus Domino/Notes. 

Тема 3. Введение в обработку данных
Среда хранения и средства обработки информационных массивов. Обобщенная схема файловой организации хранения/выборки данных. Понятие физической и логической записи. Структуры данных. Простые и агрегатные типы, массивы, деревья, списки, графы. Прямая и инвертированная организация. Типология простых запросов на поиск данных.
Эволюция и характеристика концепций обработки данных: «простые» файлы - файловые системы - системы управления данными - системы управления базами данных. 
Идентификация объектов и записей. Представление предметной области и модели данных. Декларативный и процедурный способ отображения объектов и отношений. Соотношение понятий «данные» и «метаданные».  

Раздел 2. Моделирование и проектирование БД
Тема 4. Назначение, подходы и этапы проектирования БД. Этапы проектирования и объекты моделирования ПрО.  Подходы к проектированию базы данных. Восходящее и нисходящее проектирование. Инфологические, даталогические, физические модели. Классы средств автоматизации проектирования.
Тема 5. Инфологическое (концептуальное) моделирование
Инфологическое проектирование и семантическая модель. Определение информационных потребностей. Определение требований к базе данных на основе централизованного подхода и метода интеграции представлений. Критерии оценки модели.  
Модель «сущность-связь». Основные понятия: Сущность, Свойства, Связи. Супертипы и подтипы. Проблемы выделения характеристических свойств сущности. Уникальная идентификация сущности. Связи и мощности связей. ER- диаграмма. Представление сущностей, свойства, связей. Нотации ER- диаграмм.
Методы и языки моделирования. Структурный анализ. Методика и модели концептуального проектирования IDEF. Диаграммы потоков данных. Объектно-ориентированная методология. Язык UML. Диаграммы UML. 
.  
Тема 5. Даталогические модели
Иерархические, сетевые, реляционные модели: принципы построения, структуры данных. Преимущества и недостатки, области применения.
Технология логического проектирования баз данных – отображение концептуальной схемы на выбранную модель данных. Правила и особенности отображения на иерархическую, сетевую и реляционные модели. 

Тема 6. Реляционная модель данных. Нормальные формы. Нормализация.
Основные понятия реляционной модели данных. Структурный и управляющий компонент реляционной модели. Целостность данных. Целостность на уровне доменов. Целостность на уровне отношений. Целостность на уровне БД (внешних ключей). Нормализация. Функциональные, транзитивные, многозначные зависимости. Нормальные формы. Процедура нормализации. 
Построение реляционной схемы. Нормализация таблиц. Получение реляционной схемы из ER-диаграммы.

Тема 7. Новые направления
Постреляционные и объектные базы данных. 
Хранилища данных. Многомерная и реляционная модель хранилища. Кубы фактов. Схемы «звезда», «снежинка». Многоуровневые измерения. OLAP-технология и анализ данных.
Слабоструктурированная информация и интеграция данных на основе XML.

Тема 8. Физические модели
Организация данных на машинных носителях. Файловые структуры, используемые для хранения и организации доступа к БД: файлы с последовательным, прямым, индексным доступом, инвертированные списки, цепочки. Типы записей.
Размещение данных. Страничная, параллельно-секционная организация. Стратегии обновления данных. Размещение по частоте использования. Методы основанные на резервировании. Схемы распределения данных по физическим носителям.  
Способы адресации и методы доступа к записям. Последовательное сканирование, блочный и двоичный поиск, адресация по индексу в индексно-последовательных и индексно-произвольных файлах, адресация с помощью ключей, преобразуемых в адрес, хэширование.  Примеры реализации опосредованного доступа через указатели, инвертированные файлы, списки, кольцевые структуры.
Физическое представление иерархических и сетевых структур. Физически последовательное размещение. Левосписковые структуры с переполнениями. Использование указателей на «подобные» и «порожденные». Разделение данных и связей. 

Тема 9. Примеры реализации физической модели
Моделей хранения и организации доступа к данным на примере dBASE, MS VISUAL FOXPRO, MS SQL-Server, ORACLE. Файлы, экстенты, сегменты, страницы, строки данных, индексы. 

Раздел 3. Управление базами данных

Тема 10. Языки определения и манипулирования данными. Основы SQL.
Декларативные и форм-ориентированные (QBE) средства реализации запросов. Процедурные и непроцедурные языки манипулирования данными. Языки 4GL. Генераторы форм, отчетов, приложений, генераторы графического представления данных. Встроенный и динамический SQL. 
SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Инструкции и имена. Типы данных. Встроенные функции. Определение проверочных ограничений. Определение значения по умолчанию. 
Реализация операций реляционной алгебры в SQL. 

Тема 11. Построение баз данных с помощью SQL 
Создание таблицы Описание столбцов. Ограничения целостности на уровне таблицы. Изменение структуры таблицы. Добавление, модификация, удаление столбца. Добавление/удаление ограничений. Удаление таблиц. 

Тема 12. Запросы на выборку данных 
Выборка данных. Результаты выборки. Условие отбора строк. Сортировка и объединение результатов. Вложенные запросы. 
Многотабличные запросы. Связывание таблиц. Простое объединение. Объединение таблиц по неравенству. Внешнее левое и правое объединения. 
Функции агрегирования. Запросы с группировкой. Условия отбора групп.

Тема 13. Запросы на обновление данных
Добавление данных.  Вставка одной строки Вставка результата запроса. Изменение и удаление данных.
Использование триггеров и хранимых процедур. 

Раздел 4. Эксплуатация и разработка приложений БД

Тема 14. Архитектура распределенной обработки
Локальные и сетевые базы данных. Основные требования к распределенной обработке данных и факторы, препятствующие эффективности обработки.
Двух- и трехзвенная архитектура «клиент-сервер». Модели сервера баз данных. Многопотоковые и многосерверные архитектуры. Типы параллелелизма при обработке запросов. Модель сервера приложений.

Тема 15. Технологии и интерфейсы доступа к удаленным БД
Доступ к базам данных в двухзвенных моделях «клиент-сервер» Использование библиотек доступа и встраиваемого SQL. Программный интерфейс уровня вызовов. Открытый интерфейс доступа к базам данных. Мобильный интерфейс к базам данных на платформе Java. Прикладные интерфейсы OLE DB и ADO. Мониторы обработки транзакций. Корпоративные серверы приложений. DСОМ и CORBA. Основы технологии интеграции распределенных данных. 

Тема 16. Управление транзакциями
Проблемы, возникающие при параллельной работе с данными (пропавшие обновления, чтение «грязных» или несогласованных данных, строки-призраки). 
Понятие целостности базы данных. Условия целостности. Обработка транзакций. Свойства транзакций. Модель ANSI/ISO. Двухфазный протокол фиксации изменений.
Назначение и использование журнала транзакций. Откат и восстановление. Параллельное выполнение транзакций. Захваты и блокировки.

Тема 17.  Администрирование СУБД
Идентификация пользователей. Проверка и назначение полномочий и представлений данных пользователей. Защита базы данных.
Контроль параллельной обработки. Обслуживание и восстановление базы данных. Источники отказов и сбоев. Резервное копирование данных. Процедуры восстановления.
Примеры СУБД. Обзор основных функции и компонент СУБД.

Тема 18. Средства и технологии разработки приложений баз
Работа с внешними источниками данных. Обзор возможностей ADO, BDE, dbExpress. Набор данных. Разработка приложений доступа к внешним источникам данных: подключение набора данных, настройка компонента Источник данных, отображение данных.