• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2020/2021

Теория баз данных

Направление: 01.03.02. Прикладная математика и информатика
Когда читается: 3-й курс, 1, 2 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для всех кампусов НИУ ВШЭ
Язык: русский
Кредиты: 5

Программа дисциплины

Аннотация

Один из основных методологических принципов развития информационных технологий – абстракция (а точнее, абстракция данных в отличии от абстракции процессов) – естественным образом привёл исследователей и технологов к выделению предметной области под названием «базы данных» (БД). Она включает в себя теории, методы и технологии: 1) формализации концептуальных, логических и физических моделей данных; 2) разработки универсальных языков манипулирования данными; 3) построения систем управления базами данных (СУБД); 4) оптимального доступа к данным с использованием СУБД. Изучение теории баз данных является необходимым этапом перед погружением в представление знаний, методы искусственного интеллекта и построение интеллектуальных систем. В дисциплине можно выделить следующие пять основных разделов. 1. Информация и данные. Абстракция данных и модели данных. Причины и цели создания БД и СУБД. Основные характеристики БД и СУБД. Проблемы, возникающие при описании данных и манипулировании ими. 2. Формализация данных предметной области и инфологические модели данных. Модель «сущность-связь». 3. Даталогические модели данных. Реляционная модель данных. Реляционная алгебра и реляционное исчисление. Реляционные базы данных и язык SQL. За пределами реляционной модели: NoSQL. 4. Проектирование баз данных, то есть создание и оптимизация схемы данных с использованием различных СУБД. 5. Доступ к данным в современных информационных системах. Интерфейсы и протоколы. Архитектуры информационных систем, использующих СУБД, включая многозвенные и распределённые.
Цель освоения дисциплины

Цель освоения дисциплины

  • Дисциплина должна сформировать представление о проблемах обработки данных в информационных системах (ИС), об используемых на современном этапе развития моделях данных и способах их обработки на разных уровнях абстракции.
  • В результате изучения дисциплины «Теория баз данных» студенты должны знать основные модели данных и знаний (в том числе инфологическую модель «сущность-связь», даталогическую реляционную модель, продукционные модели представления знаний), язык управления реляционными данными SQL.
  • В результате изучения дисциплины «Теория баз данных» студенты должны понимать основные принципы абстракции данных и знаний, способы реализации СУБД, методы оценки качества проектных решений при создании БД, принципы работы со знаниями и экспертными системами.
  • В результате изучения дисциплины «Теория баз данных» студенты должны уметь строить инфологические и даталогические модели данных, аргументировано выбирать СУБД, создавать реляционные БД, применять язык SQL для управления реляционными данными, конструировать компоненты доступа к данным на основе современных парадигм программирования.
Планируемые результаты обучения

Планируемые результаты обучения

  • Студенты понимают основные принципы абстракции данных и знаний, способы реализации СУБД, методы оценки качества проектных решений при создании БД, принципы работы со знаниями и экспертными системами.
  • Студенты знают инфологическую модель «сущность-связь».
  • Студенты знают даталогическую реляционную модель, продукционные модели представления знаний.
  • Студенты знают язык управления реляционными данными SQL.
  • Студенты умеют строить инфологические и даталогические модели данных, аргументировано выбирать СУБД, создавать реляционные БД, применять язык SQL для управления реляционными данными, конструировать компоненты доступа к данным на основе современных парадигм программирования.
  • Студенты знакомы с основами нереляционной формализации моделей данных.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Абстракция данных и введение в управление данными
    Информация и данные, абстракция данных. Понятие базы данных (БД) и системы управления базами данных (СУБД). Знания и их отличия от данных. Банки данных и знаний. Роль и место СУБД в современных информационных системах. Причины и цели создания БД и СУБД. Основные характеристики БД и СУБД. Проблемы, возникающие при описании систем данных и манипулировании ими. Пути развития БД и СУБД. Обзор целей и задач дисциплины. Общие принципы манипулирования данными. Задачи обработки данных. Модели данных и их классификация. Методы абстракции данных, средства структуризации, манипулирования и обеспечения целостности. Основные понятия реляционной, иерархической, сетевой и объектной модели данных. Обобщённая архитектура, состав и функции СУБД. Принцип централизованного управления данными. Концептуальный, логический и физический уровни представления данных и архитектуры СУБД. Классификация СУБД. Архитектуры современных СУБД. Открытые системы и СУБД, уровни OSI, переносимость, интероперабельность, расширяемость, масштабируемость, интернационализация.
  • Инфологическое моделирование и модель «сущность-связь»
    Этапы проектирования БД. Анализ предметной области и концептуальное проектирование БД. Средства и методы анализа и моделирования предметной области. Статические и динамические модели, основные нотации. Модель «сущность-связь» Чена (ER-модель) как статическая модель данных. Основные элементы ER-модели: Сущность, свойство, ключ, связь, тип и подтип. ER-диаграммы. Расширения ER-модели. Различные способы отображения множественности и модальности связей. Правила выделения сущностей, оценка необходимого уровня абстракции, операции над ER-моделями. Необходимость использования формальных моделей данных на следующих этапах проектирования.
  • Даталогическое проектирование и реляционная модель данных.dsd
    Теоретические основы реляционной модели данных Теоретические основы реляционной модели данных (РМД). Формализация РМД в виде алгебры и исчисления отношений на кортежах, «эквивалентность» формализаций. Базовые понятия: домен, атрибут, кортеж, отношение, ключ и др. Правила Кодда. Основные операции над отношениями, примеры. Функциональные зависимости, однозначные и многозначные зависимости, свойства зависимостей и аксиомы Армстронга, теорема Фейгина, примеры различных зависимостей. Нормализация отношений и нормальные формы (НФ). Однозначные функциональные зависимости и 1НФ-3НФ. БКНФ. Многозначные функциональные зависимости и 4НФ-5НФ. Ограничения доменов и ключей, доменно-ключевая нормальная форма. Нормализация на практике. Языки манипулирования данными на основе РМД. Предлагаемые расширения РМД. Версионирование РМД, темпоральные (временные) данные и их реляционное представление.
  • Язык манипулирования данными SQL
    Язык манипулирования данными SQL (Structured Query Language), краткая история развития, стандартизация, диалекты и проблемы совместимости. Варианты использования SQL (интерактивный, встроенный, динамический SQL и др.). Смысл разделения на язык определения данных (DDL), управления данными (DML), запроса данных (DQL), управления курсорами (CCL), управления транзакциями (TPL), управления доступом (DCL). Синтаксис и семантика основных конструкций. Реляционная полнота SQL. Полнота SQL по Тьюрингу. Типы данных языка SQL, особенности различных реализаций. Трёхзначная логика, значение NULL. Четыре главных оператора DDL и DML: SELECT, INSERT, UPDATE и DELETE. Построение сложных запросов на выборку. Язык QBE (Query-By-Example). Методы и средства защиты данных и обеспечения целостности данных, понятие транзакций. Ссылочная целостность и ограничения. Каскадное обновление и удаление. Понятие SQL-сервера. SQL-сервер как открытая система. Хранимые процедуры и триггеры. Представления (Views) и их использование. Транзакции в SQL. Управление пользователями в языке SQL и SQL-серверах. Оптимизация SQL-запросов и оптимизация работы SQL-сервера в целом.
  • Проектирование и тестирование реляционной базы данных, обеспечение целостности данных.
    Проектирование структуры реляционной БД и схемы данных. Формализация бизнес-правил и логическое проектирование БД. Выбор СУБД и физическое проектирование БД. Жизненный цикл БД. Применение методов проектирования БД с использованием реляционной модели, ER-модели и объектно-ориентированного подхода. Ещё раз о преобразовании ER-модели в реляционную и нормализации. Понятие отказоустойчивости и корректности работы БД. Целостность, полнота и непротиворечивость. Роль транзакций. Принципы ACID и CRUD. Уровни блокировок. Распределённые транзакции. Журналирование и контрольные точки. Восстановление после ошибок. Защищённые хранилища и резервное копирование. Программные средства поддержки жизненного цикла БД, использование языка UML, рефакторинг и оптимизация БД. Прямое и обратное проектирование. Тестирование БД и СУБД, виды и способы тестирования. Данные, используемые при тестировании. Генерация синтетических тестовых данных. Открытые данные.
  • Данные в нереляционной форме и знания. Современные технологии доступа к данным
    Интерфейсы доступа к СУБД. Режимы работы с СУБД. Масштабирование БД. Протоколы и интерфейсы доступа к данным различных типов: история развития и современное состояние. Распределённые системы и сеть Интернет. Web-протоколы. Современные платформы и решения. Информационные хранилища и центры обработки данных. Примеры правильного и ошибочного использования. Виртуализация и консолидация данных и средств их обработки. Примеры архитектур информационных систем. Многоуровневые (многозвенные) архитектуры. Нереляционная формализация моделей данных. Термин NoSQL. Преимущества и недостатки. Объектно-ориентированный подход к построению БД и СУБД. Обсуждение CAP-теоремы. Искусственный интеллект и экспертные системы. Способы представления знаний. Эксперты как носители знаний, способы формализации экспертных знаний. Процедурные и декларативные знания. Продукционные системы, фреймы и семантические сети. Общая архитектура экспертных систем и логический вывод. Факты и правила вывода. Языки представления знаний и форматы обмена знаниями. Введение в онтологическое моделирование. Стандарты в области управления знаниями, RDF и OWL, язык запросов SPARQL. Конвергенция технологий доступа к данным. Взгляд в будущее.
Элементы контроля

Элементы контроля

  • неблокирующий Домашнее задание 1
    Коллективный проект (первый оцениваемый этап)
  • неблокирующий Домашнее задание 2
    Коллективный проект (второй оцениваемый этап)
  • неблокирующий Домашнее задание 3
    Коллективный проект (третий оцениваемый этап)
  • неблокирующий Домашнее задание 4
    Коллективный проект (четвертый оцениваемый этап)
  • неблокирующий Самостоятельная аудиторная работа
    Письменная работа, 10-15 минут, устная работа на практических занятиях.
  • неблокирующий Контрольная работа
    Письменная работа, 80 минут.<br />Письменная контрольная работа посвящена в основном проектированию реляционной модели и языку SQL.
  • неблокирующий Экзамен
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (2 модуль)
    Дисциплина предполагает следующую структуру итоговой оценки:<br /> О<sub>текущий</sub> = 0,15·О<sub>д/з1</sub> + 0,15·О<sub>д/з2</sub> + 0,2·О<sub>д/з3</sub> + 0,2·О<sub>д/з4</sub> + 0,2·О<sub>к/р</sub> + 0,1·О<sub>аудиторная</sub> <br />О<sub>дисциплина</sub> = 0,3·О<sub>экзамен</sub> + 0,7·О<sub>текущий</sub> <br />Оценки по всем формам текущего и завершающего контроля выставляются по десятибалльной шкале. <br />Первая и вторая пересдачи проводятся в форме, максимально приближенной к устному экзамену по дисциплине.
Список литературы

Список литературы

Рекомендуемая основная литература

  • Введение в системы баз данных, Дейт К. Дж., Птицына К. А., 2005

Рекомендуемая дополнительная литература

  • Teorey, T. J. et al. Database modeling and design: logical design. – Morgan Kaufmann, 2011. – 352 pp.