Git Product home page Git Product logo

otus_db's Introduction

Домашние задания

h/w #1 (Lesson 1. Database design)

  • cпроектировать базу данных
  • Реализуйте сущности продукты, категории продуктов, цены, поставщики, производители, покупатели и покупки. Свои решения для этой схемы приветствуются
  • В проекте должны быть
    • схема
    • описание таблиц и полей
    • примеры бизнес-задач которые решает база

Реализованные сущности (структура БД, описание таблиц и полей находится тут):

  • пользователь
  • таблица для хранения подписок на других пользователей
  • таблица для хранения любимых рецептов
  • продукты
    • наименование (англ + рус)
    • КБЖУ на 100г
    • категории (рыба / мясо / молочка / овощи / фрукты ...)
  • рецепты
    • наименование блюда
    • кол-во порций - default value
    • КБЖУ на 1 порцию
    • фото финального блюда
    • время приготовления
    • сложность приготовления
    • категории (англ + рус)
      • Рецепты блюд по времени приема пищи: завтрак / обед / ужин / перекус / полдник
      • Рецепты по типу блюд: закуска / десерт / суп / первое блюдо / второе блюдо / напитки / гарнир / салат и т.п.
      • Рецепты с использованием: духовка / плита / микроволновка
      • Рецепты по способу приготовления блюд: выпекать / варить / жарить / тушить
      • Рецепты национальных кухонь: Русская кухня / Французская кухня / Итальянская кухня / Азиатская кухня
      • Основа блюда: мясо / рыба / овощи / птица / морепродукты / тесто
      • Рецепты блюд по событию: Новый год / Великий пост / Пасха / День благодарения
      • Другое: пп
    • этапы приготовления
      • фото этапов приготовления блюда
      • описание
    • ингредиенты
      • кол-во ингредиентов на 1 порцию
      • единицы измерений
  • список покупок (хранит в себе не только список и кол-во продуктов, которые необходимо купить, но и список блюд и кол-во порций по каждому)
    • продукты
      • название
      • кол-во (сумма по всем рецептам)
      • единицы измерений
    • рецепты
      • названия
      • кол-во порций
  • отзывы на рецепты

h/w #2 (Lesson 2. DBMS components)

  • Добавляем в модель данных дополнительные индексы и ограничения
  • Проводим анализ возможных запросов\отчетов\поиска данных.
  • Предполагаем возможную кардинальность поля.
  • Создаем дополнительные индексы - простые или композитные.
  • На каждый индекс пишем краткое описание зачем он нужен (почему по этому полю\полям).
  • Думаем какие логические ограничения в БД нужно добавить - например какие поля должны быть уникальны, в какие нужно добавить условия, чтобы не нарушить бизнес логику. Пример - нельзя провести операцию по переводу средств на отрицательную сумму.
  • Создаем ограничения по выбранным полям

h/w #3 (Lesson 6. PostgreSQL cluster)

  • Развернуть контейнер с PostgreSQL или установить СУБД на виртуальную машину.
  • Запустить сервер.
  • Создать клиента с подключением к базе данных postgres через командную строку.
  • Подключиться к серверу используя pgAdmin или другое аналогичное приложение.
# run all containers in docker-compose file
docker compose up

h/w #4 (Lesson 7. DDL)

  • Используя операторы DDL создать:
    • Базу данных
    • Табличные пространства
    • Роли
    • Схему данных
    • Таблицы своего проекта, распределив их по схемам
    • Распределить таблицы по табличным пространствам

h/w #5 (Lesson 9. DML: вставка, обновление, удаление, выборка данных)

  • Написать запрос с конструкциями SELECT, JOIN
  • Написать запрос с добавлением данных INSERT INTO
  • Написать запрос с обновлением данных с UPDATE FROM
  • Использовать using для оператора DELETE

  • Напишите запрос по своей базе с регулярным выражением, добавьте пояснение, что вы хотите найти
  • Напишите запрос по своей базе с использованием LEFT JOIN и INNER JOIN, как порядок соединений в FROM влияет на результат? Почему?
  • Напишите запрос на добавление данных с выводом информации о добавленных строках.
  • Напишите запрос с обновлением данных используя UPDATE FROM.
  • Напишите запрос для удаления данных с оператором DELETE используя join с другой таблицей с помощью using.
  • *Приведите пример использования утилиты COPY

otus_db's People

Contributors

gbroccol avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.