/ITMO_FSPO_DataBases_2020-2021

Репозиторий для реализации дистанционного обучения по дисциплине "Основы проектирования баз данных" (09.02.07, ФСПО)

Primary LanguageHTMLMIT LicenseMIT

ITMO_FSPO_DataBases_2020-2021

Репозиторий для реализации дистанционного обучения по дисциплине "Основы проектирования баз данных" (09.02.07, ФСПО)

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

Силабус

Лекционные материалы

Лабораторные работы - задания, оцениваемые преподавателем.

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

Лабораторная работа №1

Лабораторная работа №1 выполняется в ErwinProcessModeler. Два варианта установки: новая версия с оффициального сайта и получение студенческой лицензии, либо использование триальной версии. Скачивание старой версии с гугл диска.

Практические задания и лабораторные работы можно выполнять в группах до двух человек.

Практическая часть 1

Реализовать idef0 модель работы автомойки. Желательно в этой программе. Пример тут

Отчет о практической части содержит PDF/JPEG-файл с вашей функциональной моделью и отправляется пул реквестом в этот репозиторий в папку Pr0_idef0 (Пример students/k3340/Petrov_Vasya/Pr0_idef0 ). Шаблон названия пул реквеста "ИТМО ФСПО Номер_группы Практическая работа ФИО". Пример: "ИТМО ФСПО К3340 Практическая работа №1 Филимонов Филипп".

Практическая часть 2

Перед выполнением задания необхордимо выполнить практикум в соответствии с инструкциями из папки "Практические работы". После выполнения заданий, указанных в тексте практикума, составить функциональную модель, по одному из вариантов рассмотренных на занятии. Варианты:

  • Процесс производства меховых шуб. В процессе существуют заказы, проекты, подбор материалов, рассчет материалов, заказ материалов, рассчет производственных мощностей, поставка товара, производство. (чет)

  • Процесс заказа товара в интернет магазине. Выбор - заказа - оформление доставки - доставка - получение. (нечет)

(текстовое описание работы с программой) тут

(программа) тут

(видео-лекция) Пример и объяснение того, как сделать функциональную модель, можно посмотреть тут

Отчет о практической части содержит PDF-файл с вашей функциональной моделью и отправляется пул реквестом в этот репозиторий в папку students/k3340/Petrov_Vasya/Pr1_dfd. Шаблон названия пул реквеста "ИТМО ФСПО Номер_группы Практическая работа ФИО". Пример: "ИТМО ФСПО К3340 Практическая работа №1 Филимонов Филипп".

Лабораторная часть

Лабораторная работа выполняется в соответствии с заданием. При желании необходимо объединиться в группы и обратиться к преподавателю, написав ему в социальной сети "Вконтакте" для получения варианта. Для сдачи работы необходимо сделать презентацию и защитить ее преподавателю на консультации. Подробнее задание описано в тексте работы.

Сдача работы №1

На гит должен быть загружен пдф файл с моделью, презентация в пдф, ервин файл. Пул реквест должен содержать информация о варианте.

Лабораторная работа №2

Лабораторная работа и практическая задания №2 выполнются в ErwinDataModeler.

Примеры для леции тут

Практическая часть 2.1

Реализовать модель мойки автомобилей в нотации Питера-Чена (см. пример в презентации).

Краткое описание:

Клиент, приезжает на мойку. Выбирает тип мойки. Выбирает из спсика доп услуг те дополнительные услуги, которые нужно выполнить во время мойки. Мойщик моей машину и выполняет доп услуги.

Средства реализации: draw.io. Шаблон basic.

Отчет о практической части содержит PDF-файл с вашей моделью данных и отправляется пул реквестом в этот репозиторий в папку students/k3340/Petrov_Vasya/Pr2.1_PiterChen. Шаблон названия пул реквеста "ИТМО ФСПО Номер_группы Практическая работа ФИО". Пример: "ИТМО ФСПО К3340 Практическая работа №1 Филимонов Филипп".

Практическая часть 2.2

Ознакомитсья с примером построения модели данных в нотации idef1x (ссылка).

После просмотра примера реализовать модель данных по одному из вариантов:

  • Процесс производства меховых шуб. В процессе существуют заказы, проекты, подбор материалов, рассчет материалов, заказ материалов, рассчет производственных мощностей, поставка товара, производство. (чет)

  • Процесс заказа товара в интернет магазине. Выбор - заказа - оформление доставки - доставка - получение. (нечет)

(текстовое описание работы с программой) тут

(программа) тут. Пользователи Unix систем, могут использовать dbdiagram.io/ как альтертаиву.

(видео-лекция) Пример и объяснение того, как сделать функциональную модель, можно посмотреть тут

Отчет о практической части содержит PDF-файл с вашей моделью данных и отправляется пул реквестом в этот репозиторий в папку students/k3340/Petrov_Vasya/Pr1_dfd. Шаблон названия пул реквеста "ИТМО ФСПО Номер_группы Практическая работа ФИО". Пример: "ИТМО ФСПО К3340 Практическая работа №1 Филимонов Филипп".

Лабораторная часть

Текст работы тут (Групповой мини проект делать не нужно)

Вариант соответствует Вашему порядковому номеру в журнале на ггул диске. Если Ваш номер более 15, счет начинается с начала. Если у студента 16 номер, он выполняет варианрт 1.

Очет выполняется в соответствии с инструкциями в тексте работ. Отчет высылается на antongovorov@gmail.com. Шаблон темы письма "ИТМО ИКТ Номер_группы Лабораторная_и_номер ФИО". Пример: "ИТМО ИКТ К3340 Лабораторная работа №1 Филимонов Филипп Филиппович".

Сдача работы №2

На гит должен быть загружен пдф файл с моделью, отчет в PDF, ервин файл. Пул реквест должен содержать информация о варианте.

Лабораторная работа №3

Практическое задание 3.1

Выполнть задание в соответствии с инструкцией.
Комментарий: не забудьте выполнить импорт (относительно БД) данных из csv-файла.

Пул-реквест с практической частью содержит:

  • файл с получившейся базой данных.
  • sql-файл с дампом БД ("Файл" -> "Экспорт" -> "Базу данных в файл SQL").
  • sql-файл с командами, которые Вы попробовали выполнять в пункте 8.

Файлы пул-реквеста отправляются в этот репозиторий в папку Pr3.1_SQLite (Пример students/k3340/Petrov_Vasya/Pr3.1_SQLite). Шаблон названия пул реквеста "ИТМО ФСПО Номер_группы Практическая работа ФИО". Пример: "ИТМО ФСПО К3340 Практическая работа №1 Филимонов Филипп".

Практическое задание 3.2

Создание базы в PostgreSQL

Практикум 1 - создание базы в PostgreSQL средствами PGAdmin.

Практикум 2 - Работа с базой в PGAdmin.

Задачи:

  1. Выполнить 2 практические работы. Создать БД по вариантам из Практической работы 2.2. Для тех, кто не понял, нужно:
    1.1 Установить PgAdmin.
    1.2 Создать базу данных и схему базы данных с произвольными именами.
    1.3 Создать таблицы по схеме данных сделанной в Практической работе 2.2, настроить ограничения целостности.
    1.4 Настроить ключевые поля (первичные и внешние ключи).
    1.5 Заполнить таблицы примерами данных.
  2. Выполнить по 3 команды к разным таблицам на следующие операторы:
  • insert
  • select
  • update
  • delete

Пул-реквест о практической части содержит файл с дампом получившейся базы данных и sql файл с коандами из пункта 2 и отправляется пул реквестом в этот репозиторий в папку Pr3.2_PostgreSQL (Пример students/k3340/Petrov_Vasya/Pr3.2_PostgreSQL). Шаблон названия пул реквеста "ИТМО ФСПО Номер_группы Практическая работа ФИО". Пример: "ИТМО ФСПО К3340 Практическая работа №1 Филимонов Филипп".

Практическое задание 3.3

Описать папку в репозитории с помощью markdown и readme.md

Структура описания:

  • Текстовое описание папки в репозитории
  • Список работ в виде таблицы (нумерованный) со ссылками в папки с работами

Ссылка на презентацию

Лабораторная часть

Часть 1. Код

Реализовать код создания таблиц, связей между ними и добавления данных (3-5 строк на таблицу). Индивидуальные необходтимо взять из лабораторной работы номер 2. Работать только с командной строкой SQL Shell(psql).

Полезные материалы:

Часть 2. Документация к коду

Реализовать документацию, описывающую работу все таблицы средствами Read the Docs или MkDocs.

Структура документации:

  • Главная страница: описание системы, скриншот из модели данных
  • Описание СУБД: Название СУБД, Версия СУБД, код создания БД
    • Описание каждой таблицы в БД: необходимо сделать таблицу и заполнить следубщие столбцы:
      • Наименование поля
      • Тип данных
      • Указатель на первичный ключ
      • Указатель на внешний ключ
      • Указатель униекльности
      • Ограничения целостности списком
    • Код создания таблиц
    • Код заполнения данных

Полезные материалы:

Сдача работы №4

Полученный SQL-код и документациюв mk-docs залить в папку этого репозитория students/группа/laboratory_works/фамилия_имя/laboratory_work_4. Инструкция о загрузке работы ниже. Не забывайте о файле .gitignore. На гит должен быть загружен PDF-файл с отчетом, sql-файл с базой. Для каждой таблицы в sql-файле должен быть написан комментарий с ее описанием. Как делать пул реквест описано в разделе Сдача работ

Лабораторная работа №4

Лекция по нормализации тут.

До лекции можно посмотреть первых 4 видео урока из этого плейлиста. Этого достаточно, чтобы понять суть нормализации и выполнить лабораторную работу.

Лабораторная работа и практическая задания выполнются в DBprom. Текст работы тут.

Лабораторная часть

Работа выполняется в той же предметной области, что и работа №2.

Сдача работы №4

Очет выполняется в соответствии с инструкциями в тексте работы. Шаблон темы пул-реквеста "ИТМО ИКТ Номер_группы Лабораторная_и_номер ФИО". Пример: "ИТМО ИКТ К3340 Лабораторная работа №1 Филимонов Филипп Филиппович". На гит должен быть загружен пдф файл с моделью, отчет в PDF. Пул реквест должен содержать информацию о варианте.

Лабораторная работа №5

Лекционно-практическая часть

  1. Необходимо создать базу данных для реализации примеров и заданий из презентации ниже.
    СУБД: PostgreSQL.
    Средство (песочница для работы с запросами): https://sqliteonline.com/ .
    Код создания БД
  2. Презентация 1 тут (Тема: SELECT SQL: Соединения)
  3. Презентация 2 тут(Тема: SELECT SQL: Переменные таблицы. Множественные операторы)
  4. Презентация 3 тут(Тема: SELECT SQL: Подзапросы (Some, any..)

Лабораторная часть

Срок сдачи 21.04.2021

Необходимо реализовать некоторое количество SQL-запросов. В лабораторной работе №4 Вам требуется написать определенное количество запросов на определенное количество баллов, зависимое от оценки, на которую Вы претендуете. . Примерный набор требуемых запросов:

  1. выбор значений, заданных атрибутов из более, чем двух таблиц, с сортировкой – от 1 балла;
  2. использование условий WHERE, состоящих из более, чем одного условия – от 1 балла;
  3. использование функций для работы с датами – от 2 баллов;
  4. использование строковых функций – от 2 баллов;
  5. запрос с использованием подзапросов – от 2 баллов (многострочный подзапрос - от 2 баллов);
  6. вычисление групповой (агрегатной) функции – от 1 балла (с несколькими таблицами – от 2 баллов);
  7. вычисление групповой (агрегатной) функции с условием HAVING – от 2 баллов;
  8. использование предикатов EXISTS, ALL, SOME и ANY - от 2 баллов;
  9. использование запросов с операциями реляционной алгебры (объединение, пересечение и т.д.) - от 2 баллов;
  10. использование объединений запросов (inner join и т.д.) - от 2 баллов.

Запросов должно быть не менее 10 (30 баллов на 5, 25 баллов на 4, 20 баллов на 3)(5, 4, 3 - это оценки, а не суммы баллов в журнале).

Сдача работы №5

Для сдачи работы необходимо:

  • Полученный SQL-код (*.sql) залить в папку этого репозитория students/группа/laboratory_works/фамилия_имя/laboratory_work_5.
  • Дописать документацию из работы №3 и добавить в нее раздел "Запросы", в котором для каждого запроса описать:
    • Номер запроса
    • Описание запроса
    • Код запроса
    • Пример получившихся данных (таблица с заголовками)

Инструкция о загрузке работы ниже. Не забывайте о файле гитигнор. Новый срок сдачи 21.04.2021 На гит должен быть загружен пдф файл с отчетом, sql файл с запросами. Для каждого запроса в sql файле должен быть написан комментарий с описанием того, что делает запрос. Как делать пул реквест описано в разделе Сдача работ

Лабораторная работа №6

Срок сдачи 5 мая

Создание интерфейсов к СУБД средствами php

Часть1

Часть2

важно

Отчет делать не нужно. Нужно дополнить сущестующую документацию в mkdoks. Документация должна содержать описание интерфейсов выполненных в практическом задании (скриншот+краткое текстовое описание ).

Сдача работы №6

Часть1 Полученный php код залить в папку этого репозитория students/группа/practical_works/фамилия_имя/practical_works_6. Инструкция о загрузке работы ниже. Не забывайте о файле .gitignore.

Часть2 Полученный код сайта залить в папку этого репозитория students/группа/laboratory_works/фамилия_имя/laboratory_work_6. Инструкция о загрузке работы ниже. Не забывайте о файле .gitignore.

Как делать пул реквест описано в разделе Сдача работ

Лабораторная работа №7

Лабораторная работа по MongoDB.

Лекционная часть

SQL или NoSQL — вот в чём вопрос

MySQL и MongoDB — когда и что лучше использовать

Как работают NoSQL базы: документ-ориентированные типа MongoDB

Практическая часть

Текст практической части работы доступен тут:

Часть 1

Часть 2

Лабораторная часть

текст лабораторной работы

Вариант выбирается в соответствии с вариантом из ЛР№2.

Отчет делать не нужно. Нужно сделать документацию в mkdocs. Страницы документации:

  • описание, создание и заполнение коллекции.
  • запросы.

Сдача работы №7

Полученную модель, код и отчет залить в папку этого репозитория students/группа/laboratory_works/фамилия_имя/laboratory_work_7. Инструкция о загрузке работы ниже. Не забывайте о файле гитигнор. На гит должен быть загружен пдф файл с отчетом, файл с запросами. Для каждого запроса в файле должен быть написан комментарий с описанием того, что делает запрос. Как делать пул реквест описано в разделе Сдача работ

Типовик (Дополнение к лабороторной по написанию запрсов на выборку)

Дедлайн - конец семестра. Требуется выполнить курс "Оператор Select (версия 2021)" на сайте http://learnsql.ru/. Курс содержит 60 заданий на различные темы. Задания могут относиться к разным темам. При выполнении заданя в меню "Темы для изучения", доступны ссылки на методрические материалы по необходимым для выполнения задания темам.

Сдача работ

Для сдачи работы в связи с переходом на дистанционную форму обучения введены дополднительные правила игры.

Все отчеты сохраняются в pdf (документы и презентации).

Все студенческие работы хранятся в папке Students Для сдачи работы необходимо:

  1. Зарегиться на гите.
  2. Сделать форк репозитория с заданиями в свой аккаунт (на странице https://github.com/TonikX/ITMO_FSPO_DataBases_2020-2021 кнопка fork справа, сверху).
  3. Установить гит на компьютер.
  4. Открыть папку, где хранятся Ваши проекты. В контекстом меню нажать "Open Git Bash here". Склонировать форкнутый репозиторий на компьютер (git clone https://github.com/ваш аккаунт/ITMO_FSPO_DataBases_2020).
  5. В файловой системе Вашего компрьютера, в склонированном репозитории создать в папке students/группа Вашу личную папку в формате Фамилия_Имя латиницей (Пример students/k3340/Petrov_Vasya).
  6. В личной папке сделать подпапку с текущей работой в формате lr_номер (Пример students/k3340/Petrov_Vasya/Lr1).
  7. Записать в папку отчетные материалы.
  8. Сделать коммит, описать его адекватно (Пример "был добавлен файл перезентация_петров.pdf"). Набрать команлы git add и git commit -m "название комита".
  9. Сделать push в Ваш форкнутый репозиторий (git push).
  10. Сделать пул-реквест в мой репозиторий из вашего форкнутого, описать его адекватно. Пока пользуйтесь этой инструкцией, у нас нет веток с заданиями, как тут, но Вам поможет. Скоро запишу ролик. Все работы сдаются средствами создания Pull Requests в папку students в этом репозитории. Прошедшие работы тоже необходимо запулреквестить.

Еще один мануал о том, как сделать Pull Request, описан тут.