Домашнее задание 1. Установка и использование СУБД
- Установите систему управления реляционными базами данных.
- Узнайте, как в вашей СУБД исполнять SQL в интерактивном режиме.
- Узнайте, как в вашей СУБД исполнять SQL в пакетном режиме.
- Разберитесь, как в вашей СУБД осуществляется поддержка русского языка.
- Создайте базу данных и наполните ее в соответствии с примерами из презентации.
Ожидаемая структура проекта
-
Текстовая часть
- Описание предметной области с кратким описанием неочевидных сущностей и атрибутов.
- Предварительное разбиение на отношения (может отсутствовать).
- Для каждого отношения: определение функциональных зависимостей, нормализация до 5НФ, денормализация (при необходимости).
- Модель сущность-связь.
- Физическая модель (должна соответствовать ERM) с указанием типов для доменов.
-
Часть на SQL
ddl.sql
– описание таблиц и индексов.insert.sql
– добавление тестовых данных.select.sql
– запросы на получение данных и представления.update.sql
– запросы на изменение данных, хранимые процедуры и триггеры.
В рамках проекта:
-
Выберите тему проекта.
- Тема должна быть уникальной.
- Тема должна быть достаточно сложной.
- Нельзя брать темы: обучение в университете; торговля (как товарами, так и билетами); cоревнования по программированию.
Домашнее задание 2. Моделирование БД «Университет»
Спроектируйте базу данных «Университет», позволяющую хранить информацию о факультетах, студентах, группах, преподавателях, дисциплинах и оценках.
- Составьте модель сущность-связь.
- Преобразуйте модель сущность-связь в физическую модель.
- Запишите физическую модель на языке SQL. Запись должна включать объявления ограничений.
- Создайте базу данных по спроектированной модели.
- Запишите операторы SQL, заполняющие базу тестовыми данными. Достаточно 2–3 записей на таблицу, если они в полной мере демонстрируют особенности БД.
Примечания
-
Не требуется поддержка:
- нескольких университетов;
- дисциплин по выбору;
- дисциплин с необычным распределением по группам (таких как физическая культура и иностранный язык);
- переводов между группами;
- исторических данных;
- нескольких оценок по одной дисциплине.
-
Многосеместровые дисциплины считаются по семестрам,
например:
- Математический анализ (семестр 1);
- Математический анализ (семестр 2).
Форма для сдачи ДЗ. Проверка проводится в полуавтоматическом режиме, поэтому строго соблюдайте указанные форматы.
В рамках проекта:
-
Сделайте предварительную схему для БД проекта на основе моделей:
- модель сущность-связь;
- физическая модель;
- определение схемы на SQL.
Домашнее задание 3. Функциональные зависимости в БД «Университет»
Дано отношение с атрибутами StudentId, StudentName, GroupId, GroupName, GroupFacultyId, CourseId, CourseName, LecturerId, LecturerName, LecturerFacultyId, Mark, FacultyId, FacultyName, FacultyDeanId.
- Найдите функциональные зависимости в данном отношении.
- Найдите все ключи данного отношения.
-
Найдите замыкание множеств атрибутов:
- GroupId, CourseId;
- StudentId, CourseId;
- StudentId, LecturerId;
- StudentId, LecturerFacultyDeanId;
- GroupName, LecturerId.
- Найдите неприводимое множество функциональных зависимостей для данного отношения.
Примечания
-
Не требуется поддержка:
- нескольких университетов;
- дисциплин по выбору;
- дисциплин с необычным распределением по группам (таких как физическая культура и иностранный язык);
- переводов между группами;
- нескольких оценок по одной дисциплине.
- Многосеместровые дисциплины считаются по семестрам, например: Математический анализ (семестр 1), Математический анализ (семестр 2).
Форма для сдачи ДЗ. Проверка проводится в полуавтоматическом режиме, поэтому строго соблюдайте указанные форматы.
В рамках проекта:
- Определите набор атрибутов, необходимых для проекта, и определите отношения на них.
- Найдите функциональные зависимости полученных отношений.
- Найдите все ключи полученных отношений.
- Найдите неприводимые множества функциональных зависимостей для полученных отношений.
Домашнее задание 4. Нормализация БД «Университет»
Дано отношение с атрибутами StudentId, StudentName, GroupId, GroupName, GroupFacultyId, GroupFacultyName, GroupFacultyDeanId; CourseId, CourseName, LecturerId, LecturerName, LecturerFacultyId, LecturerFacultyName, LecturerFacultyDeanId, Mark. и функциональными зависимостями:
- StudentId → StudentName, GroupId, GroupName;
- GroupId → GroupName, GroupFacultyId;
- GroupName → GroupId;
- CourseId → CourseName;
- LecturerId → LecturerName, LecturerFacultyId;
- StudentId, CourseId → Mark;
- GroupId, CourseId → LecturerId;
- GroupFacultyId → GroupFacultyName, GroupFacultyDeanId;
- GroupFacultyName → GroupFacultyId;
- LecturerFacultyId → LecturerFacultyName, LecturerFacultyDeanId;
- LecturerFacultyName → LecturerFacultyId.
- Инкрементально приведите данное отношение в пятую нормальную форму.
- Постройте соответствующую модель сущность-связь.
- Постройте соответствующую физическую модель.
- Реализуйте SQL-скрипты, создающие схему базы данных.
- Создайте базу данных по спроектированной модели.
- Заполните базу тестовыми данными.
В рамках проекта:
- Приведите схему базы в пятую нормальную форму.
- Если итоговая схема не будет в НФ-5, то обоснуйте принятое решение.
- Запишите определения таблиц на языке SQL.
- Запишите на языке SQL наполнение таблиц тестовым данными.