Giter Club home page Giter Club logo

gui's Introduction

Отчёт

Лабораторная работа №2(4)
Выполнили: Алексей и Илья Таценко
Группа: ПИ-2


1. Создание схемы бд.

В качестве предметной области были выбраны данные о странах и городах, находящихся в них. Таблица Country(Страна) содержит информацию о странах и состоит из трёх полей: id(индентификатор), генерирующийся автоматически, name(название страны) и cities_count(количество городов в данной стране). Таблица City содержит информацию о конкретном городе в стране и состоит их четырёх полей: id(идентификатор), генерирующийся автоматически, name(название города), country(страна) и isCapital(является столицей).

Схема БД:

2. Реализация реляционной БД для выбранной предметной области.

Sql-код по созданию всех хранимых процедур и функций находится здесь.

3. Критерии к БД:

  • БД должна быть в третьей нормальной форме или выше;

    Данная БД представлена в третьей нормальной форме, так как в каждой стране может находится несколько городов, но каждый город может находиться только в одной стране.

  • Минимальное количество таблиц – 2;

    В базе данных создано 2 таблицы: Country(Страна) и City(Город).

  • Все подключения из GUI должны осуществляться выделенным, не root, пользователем;

    При создании новой базы создается пользователь sqladminи становится ее владельцем. Если такой пользователь уже есть, то ему назначаются соответствующие права на эту базу данных.

  • Должен существовать как минимум один индекс, созданный вами по выбранному текстовому не ключевому полю;

    Создано 2 уникальных индекса по полю name(Название страны) в таблице Country и name(Название города) - в таблице City.

    CREATE UNIQUE INDEX idx_country ON country (name);
    CREATE UNIQUE INDEX idx_city ON city (name);
  • В одной из таблиц должно присутствовать поле, заполняемое/изменяемое только триггером

    В таблице City было создано 2 триггера: на удаление существующих данных и на вставку новых. При этих операциях в поле cities_count в таблице Country записывается общее количество городов в этой стране (из таблицы City).

    CREATE OR REPLACE FUNCTION function_count_insert() RETURNS TRIGGER AS
    $BODY$
    BEGIN
        update country set cities_count = (select count(id) from city where country = new.country) where id = new.country;
      return new;
    END;
    $BODY$
    language plpgsql;
    
    CREATE TRIGGER trig_count_insert
         AFTER INSERT ON city
         FOR EACH ROW
         EXECUTE PROCEDURE function_count_insert();
    
    
    CREATE OR REPLACE FUNCTION function_count_delete() RETURNS TRIGGER AS
    $BODY$
    BEGIN
        update country set cities_count = (select count(id) from city where country = old.country) where id = old.country;
      return new;
    END;
    $BODY$
    language plpgsql;
    
    CREATE TRIGGER trig_count_delete
         AFTER delete ON city
         FOR EACH ROW
         EXECUTE PROCEDURE function_count_delete();

4. Реализация программы GUI.

При создании базы вызывается код из файла SQL.txt. При взаимодействии с базой используются функции и хранимые процедуры.

5. Структура проекта.

Основной файл - Program.cs. Он вызывает стартовое окно - Form1.cs. Окно редактирования базы данных - FormEdit.cs.

6. Вид приложения.

Начальное окно программы:

Окно редактирования базы данных:

7. Видео с демонстрацией работы приложения.

https://youtu.be/mw989u7DkoU

gui's People

Contributors

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