Coder Social home page Coder Social logo

avvessalom / itmo-information-systems-and-databases Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 1.09 MB

Лабораторные работы по Информационным системам и базам данных (ИТМО, ПИиКТ-СиППО, 3 курс).

postgresql sql postgres itmo-university itmo

itmo-information-systems-and-databases's Introduction

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

  • На основе предложенной предметной области (текста) составить ее описание. Из полученного описания выделить сущности, их атрибуты и связи.
  • Составить инфологическую модель.
  • Составить даталогическую модель. При описании типов данных для атрибутов должны использоваться типы из СУБД PostgreSQL.
  • Реализовать даталогическую модель в PostgreSQL. При описании и реализации даталогической модели должны учитываться ограничения целостности, которые характерны для полученной предметной области.
  • Заполнить созданные таблицы тестовыми данными.

Описание предметной области, по которой должна быть построена доменная модель:

Олвин уже почти трансформировал свою комнату, когда до его сознания дошел настойчивый сигнал, напоминающий позвякивание
колокольчика. Сформировав мысленный импульс, Олвин позволил гостю появиться, и стена, на которой он только что занимался 
живописью, снова связала его с внешним миром. Как он и ожидал, в обрисовавшемся проеме стояли его родители, а чуть позади
них -- Джизирак. Присутствие наставника означало, что визит носит не просто семейный характер. Впрочем, даже и не будь 
здесь Джизирака, он бы все равно догадался об этом. 

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

Составить запросы на языке SQL (пункты 1-7).

  1. Сделать запрос для получения атрибутов из указанных таблиц, применив фильтры по указанным условиям: Н_ТИПЫ_ВЕДОМОСТЕЙ, Н_ВЕДОМОСТИ. Вывести атрибуты: Н_ТИПЫ_ВЕДОМОСТЕЙ.ИД, Н_ВЕДОМОСТИ.ИД. Фильтры (AND): a) Н_ТИПЫ_ВЕДОМОСТЕЙ.НАИМЕНОВАНИЕ > Ведомость. b) Н_ВЕДОМОСТИ.ДАТА < 2010-06-18. c) Н_ВЕДОМОСТИ.ДАТА > 2022-06-08. Вид соединения: INNER JOIN.

  2. Сделать запрос для получения атрибутов из указанных таблиц, применив фильтры по указанным условиям: Таблицы: Н_ЛЮДИ, Н_ВЕДОМОСТИ, Н_СЕССИЯ. Вывести атрибуты: Н_ЛЮДИ.ИМЯ, Н_ВЕДОМОСТИ.ДАТА, Н_СЕССИЯ.УЧГОД. Фильтры (AND): a) Н_ЛЮДИ.ФАМИЛИЯ > Иванов. b) Н_ВЕДОМОСТИ.ИД < 1250972. Вид соединения: INNER JOIN.

  3. Вывести число фамилий и отчеств без учета повторений. При составлении запроса нельзя использовать DISTINCT.

  4. Выдать различные отчества людей и число людей с каждой из этих отчеств, ограничив список отчествами, встречающимися менее 50 раз на кафедре вычислительной техники.

    Для реализации использовать соединение таблиц.

  5. Выведите таблицу со средними оценками студентов группы 4100 (Номер, ФИО, Ср_оценка), у которых средняя оценка не больше средней оценк(е|и) в группе 1101.

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

    номер группы;

    номер, фамилию, имя и отчество студента;

    номер пункта приказа;

    Для реализации использовать соединение таблиц.

  7. Сформировать запрос для получения числа на ФКТИУ отличников.

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

Составить запросы на языке SQL (пункты 1-2).

Для каждого запроса предложить индексы, добавление которых уменьшит время выполнения запроса (указать таблицы/атрибуты, для которых нужно добавить индексы, написать тип индекса; объяснить, почему добавление индекса будет полезным для данного запроса).

Для запросов 1-2 необходимо составить возможные планы выполнения запросов. Планы составляются на основании предположения, что в таблицах отсутствуют индексы. Из составленных планов необходимо выбрать оптимальный и объяснить свой выбор. Изменятся ли планы при добавлении индекса и как?

Для запросов 1-2 необходимо добавить в отчет вывод команды EXPLAIN ANALYZE запрос

Подробные ответы на все вышеперечисленные вопросы должны присутствовать в отчете (планы выполнения запросов должны быть нарисованы, ответы на вопросы - представлены в текстовом виде).

  1. Сделать запрос для получения атрибутов из указанных таблиц, применив фильтры по указанным условиям: Н_ТИПЫ_ВЕДОМОСТЕЙ, Н_ВЕДОМОСТИ.

    Вывести атрибуты: Н_ТИПЫ_ВЕДОМОСТЕЙ.ИД, Н_ВЕДОМОСТИ.ДАТА.

    Фильтры (AND): a) Н_ТИПЫ_ВЕДОМОСТЕЙ.ИД < 3. b) Н_ВЕДОМОСТИ.ДАТА > 1998-01-05.

    Вид соединения: RIGHT JOIN.

  2. Сделать запрос для получения атрибутов из указанных таблиц, применив фильтры по указанным условиям: Таблицы: Н_ЛЮДИ, Н_ОБУЧЕНИЯ, Н_УЧЕНИКИ.

    Вывести атрибуты: Н_ЛЮДИ.ФАМИЛИЯ, Н_ОБУЧЕНИЯ.НЗК, Н_УЧЕНИКИ.НАЧАЛО.

    Фильтры: (AND) a) Н_ЛЮДИ.ОТЧЕСТВО < Георгиевич. b) Н_ОБУЧЕНИЯ.ЧЛВК_ИД > 163276. c) Н_УЧЕНИКИ.ИД = 1.

    Вид соединения: LEFT JOIN.

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

Для отношений, полученных при построении предметной области из лабораторной работы №1, выполните следующие действия:

  • опишите функциональные зависимости для отношений полученной схемы (минимальное множество);
  • приведите отношения в 3NF (как минимум). Постройте схему на основеNF (как минимум). Постройте схему на основе полученных отношений;
  • опишите изменения в функциональных зависимостях, произошедшие после преобразования в 3NF (как минимум). Постройте схему на основеNF;
  • преобразуйте отношения в BCNF. Докажите, что полученные отношения представлены в BCNF;
  • какие денормализации будут полезны для вашей схемы? Приведите подробное описание.

itmo-information-systems-and-databases's People

Contributors

avvessalom avatar

Stargazers

 avatar  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.