Бакалавриат
2020/2021
Теория баз данных
Статус:
Курс по выбору (Прикладная математика и информатика)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
3-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Язык:
русский
Кредиты:
5
Контактные часы:
60
Программа дисциплины
Аннотация
Один из основных методологических принципов развития информационных технологий – абстракция (а точнее, абстракция данных в отличии от абстракции процессов) – естественным образом привёл исследователей и технологов к выделению предметной области под названием «базы данных» (БД). Она включает в себя теории, методы и технологии: 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 минут.
Письменная контрольная работа посвящена в основном проектированию реляционной модели и языку SQL. - Экзамен
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)Дисциплина предполагает следующую структуру итоговой оценки:
Отекущий = 0,15·Од/з1 + 0,15·Од/з2 + 0,2·Од/з3 + 0,2·Од/з4 + 0,2·Ок/р + 0,1·Оаудиторная
Одисциплина = 0,3·Оэкзамен + 0,7·Отекущий
Оценки по всем формам текущего и завершающего контроля выставляются по десятибалльной шкале.
Первая и вторая пересдачи проводятся в форме, максимально приближенной к устному экзамену по дисциплине.