Базы данных

Информация для студентов

Программа курса

  1. Введение в курс Базы данных.

    Обзор того, что будет изучаться в рамках курса. Роль и место СУБД в прикладных системах. Основные функции СУБД. Взаимодействие СУБД с другими компонентами программного обеспечения. История развития СУБД.

  2. ER и реляционная модели.

    Неформальное определение модели данных и ранние модели данных. Значение высокоуровневых языков запросов. Пост-реляционные модели данных: объектные модели данных, объектно-реляционные модели. Пространственные, временные, многомерные данные.

  3. Тонкости реляционной модели и альтернативные модели.

    Слабоструктурированная модель данных. Связь реляционной модели и объектов, XML вкрапления в БД, понятие функциональных зависимостей и основ нормализации. Языки запросов для слабоструктурированных данных.

  4. Функциональные зависимости и нормализация.

    Понятия функциональной зависимости и основы теории нормализации (до 3-ей нормальной формы + форма Бойса-Кодда).

  5. Диски и файлы, введение в индексы, деревья индексов.

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

  6. Деревья индексов (продолжение), сортировка.

    Вопросы сортировки. Разновидности сортировки. Применение известных методов сортировки к объектам БД

  7. Реляционная алгебра и реляционные вычисления (начало).

    Основные понятия реляционной алгебры и реляционного исчисления. Связь между этими двумя понятиями. Реляционная модель данных: определение, основные операции реляционной алгебры, эквивалентность языков запросов.

  8. Реляционные вычисления (продолжение) и SQL.

    Связи реляционных вычислений и SQL. Язык запросов SQL в реляционных и пост-реляционных системах. Объектные и дедуктивные языки запросов.

  9. Обработка запросов.

    Вопросы связанные с обработкой запросов. В частности, процесс обработки запроса СУБД от момента его прихода со стороны пользователя и до получения ответа. Связь с реляционной алгеброй для выполнения запроса. Функции и состав ядра СУБД. Структуры хранения для различных типов и моделей данных. Методы индексирования. Алгоритмы выполнения алгебраических операций в реляционной и пост-реляционных системах. Методы оптимизации запросов. Управление оперативной памятью: буферизация.

  10. Оптимизация запросов.

    Стоимость запроса, состав оптимизатора СУБД, оценка стоимости, статистика по данным.

  11. Поиск в интернете.

    Поиск в глобальной сети, устройство поисковых движков, принцип map-reduce, устройство обратного индекса, векторная модель поиска, расчёт релевантности запроса.

  12. Физический дизайн.

    Создание индексов. Планирование хранения объектов БД на диске/дисках. В частности, способ дефрагментации таблицы для хранения её в нескольких местах. Планирование емкости и мощности системы. Проектирование физической схемы базы данных. Выбор цели оптимизации системы. Анализ производительности и выявление узких мест. Настройка сервера СУБД. Анализ планов выполнения запросов и их настройка. Управление оптимизатором запросов.

  13. Колоночные базы данных.

    Колоночные БД. История их возникновения, принципы и особенности устройства. Расчёт эффективности применения колоночных СУБД.

  14. Введение в теорию транзакций. Контроль выполнения транзакций.

    Основы теории транзакций, основные определения и понятия из области. ACID свойства транзакций. Контроль выполнения транзакций. Ключевые понятия: конфликт, замки, двухфазный протокол ведения транзакций... Определение транзакций и их роль в поддержке согласованности и защите от отказов. Критерии согласованности. Теория сериализуемости. Модель управления транзакциями: планировщики и протоколы. Двухфазный протокол блокирования и его корректность. Обнаружение тупиков. Многоуровневое блокирование и недвухфазные протоколы блокирования. Неблокирующие протоколы управления транзакциями. Теория ведения журналов и восстановления после отказов. Распределенные системы: двухфазный протокол завершения. Раскопированные данные: протоколы голосования.

  15. Восстановление.

    Аспекты восстановления системы после сбоя. Ключевые понятия: журнал, операции наката (redo) и отката (undo), политики ведения журнала... Управление отказоустойчивостью (создание резервных копий, процедуры восстановления). Сопровождение баз данных. Методы ведения журналов, алгоритмы откатов транзакций и восстановления после отказов.

  16. Параллельные и распределенные базы данных, неоднородные системы.

    Параллельные серверы баз данных. Распределенные системы: выполнение запросов, репликация и фрагментация данных, особенности выполнения транзакций. Роль неоднородных систем. Уровни неоднородности: архитектуры вычислительных систем, моделей данных, семантическая неоднородность. Интеграция неоднородных моделей данных. Устранение семантических неоднородностей. Неоднородные автономные системы. Методы поддержки согласованности в неоднородных системах. СУБД в распределенных объектных системах. Мониторы транзакций. Серверы приложений. Доступ к базам данных из Интернет.

    1. Независимость данных. Трехуровневая модель описания данных и соответствие ей в реальных прикладных системах. Представления.
    2. ER-модель.
    3. Реляционная модель и алгебра.
    4. Преобразование ER-модели в реляционную.
    5. Функциональные зависимости.
    6. Нормальные формы.
    7. Хранение данных на диске, buffer manager, стратегии замещения страниц.
    8. Алгоритмы сортировки и выполнения соединений на основе сортировки.
    9. Выполнение соединений вложенными циклами и с использованием сортировки.
    10. Индексы и B-деревья.
    11. Индексы и хеш-таблицы.
    12. Индексы и выполнение соединений с использованием индексов.
    13. Оптимизация выполнения запросов.
    14. Поиск в интернете.
    15. Колоночные базы данных.
    16. Транзакции и критерий сериализуемости по конфликтам.
    17. Транзакции, блокировки и двухфазный протокол.
    18. Восстановление после сбоев.
    19. Параллельные и распределенные базы данных .
    1. Principles of Distributed Database Systems, Second Edition, M. Tamer Özsu, Patrick Valduriez, Prentice Hall, ISBN 0-13-659707-6, 1999
    2. Технологии анализа данных. Data Mining, Visual Mining, Text Mining, OLAP (+ CD-ROM). А. А. Барсегян, М. С. Куприянов, В. В. Степаненко, И. И. Холод
    3. Введение в системы баз данных : научно-популярная литература / К.Дж. Дейт. - 7-е изд. - М. : Вильямс, 2001. - 1071 с. : ил. - Библиогр. В конце глав. - ISBN 5-8459-0138-3 : 2050.00. т.
  17. Хороший обзор книг приведён на странице http://citforum.ru/database/advanced_intro/86.shtml

    Политика по отношению к студентам

    • При подготовке допускается использование любых материалов (конспектов, слайдов, учебников, шпаргалок и т.п.), но во время ответа требуется понимание записанного при подготовке. В частности, основные утверждения (определения и др.) должны быть известны без подготовки.
    • Не допускается коллективная подготовка ответов, обсуждения и взаимные консультации во время подготовки ответов.
    • При ответе на любой вопрос допускается изложение точек зрения, не совпадающих с точкой зрения лектора или авторов любой из рекомендованных книг, но в любом случае (то есть независимо от совпадения с каким-либо источнником) отвечающий должен быть в состоянии мотивированно обосновать то, что он/она рассказывает.
    • Не нужно тратить время подготовки к ответу исключительно на копирование текста из конспекта на листочек
    • Потрудитесь pls брать примеры не из конспекта.
Прикрепленный файлРазмер
PDF icon Задачи_по_БД.pdf540.5 KB
Office presentation icon Stored_Procedures_in_PLSQL.ppt62.5 KB