Главная страница
Навигация по странице:

  • Установка и настройка СУБД PostgreSQL

  • Создание и настройка базы данных

  • Определение сущностей

  • Выполнение операций над данными

  • Отчёт оп. Отчёт ОП. Содержание Установка и настройка субд postgresql 6 Создание и настройка базы данных 14 Определение сущностей 16 Выполнение операций над данными 19 Вывод 26 Ссылки 27 Установка и настройка субд postgresql


    Скачать 1.42 Mb.
    НазваниеСодержание Установка и настройка субд postgresql 6 Создание и настройка базы данных 14 Определение сущностей 16 Выполнение операций над данными 19 Вывод 26 Ссылки 27 Установка и настройка субд postgresql
    АнкорОтчёт оп
    Дата31.05.2022
    Размер1.42 Mb.
    Формат файлаdocx
    Имя файлаОтчёт ОП.docx
    ТипДокументы
    #559400











    Содержание



    Установка и настройка СУБД PostgreSQL 6

    Создание и настройка базы данных 14

    Определение сущностей 16

    Выполнение операций над данными 19

    Вывод 26

    Ссылки 27


    Установка и настройка СУБД PostgreSQL


    Во время установки следует оставить все параметры по умолчанию.



    Рисунок 1. Установка PostgreSQL

    Далее необходимо задать пароль для суперпользователя postgres.

    Рисунок 2. Установка пароля суперпользователя PostgreSQL

    После завершения установки следует предотвратить запуск Stack Builder.



    Рисунок 3. Завершение установки PostgreSQL

    Работа с системой управления базами данных PostgreSQL осуществляется с помощью программы psql.

    Рисунок 4. Запуск psql

    При первом запуске psql предупредит о несоответствии кодировок, что может вызвать неудобства при работе с ней.

    Рисунок 5. Первый запуск psql

    Для устранения неудобства необходимо исправить скрипт запуска psql. Следует запустить любой текстовый редактор с правами администратора.



    Рисунок 6. Запуск стандартного текстового редактора MS Windows

    Затем открыть для редактирования скрипт запуска psql, расположение которого по умолчанию отображено на рисунке 7 ниже.



    Рисунок 7. Открытие скрипта запуска psql для редактирования

    Для исправления проблемы необходимо добавить строчку «CHCP 1251», которая будет при запуске psql устанавливать кодировку 1251, которая соответствует системной. Затем файл необходимо сохранить.

    Рисунок 8. Исправление скрипта запуска psql

    Теперь при запуске psql предупреждение и соответствующие проблемы более не будут возникать.

    Рисунок 9. Запуск psql

    Создание и настройка базы данных


    Создание базы данных с помощью команды: CREATE DATABASE zhdanov06;



    Рисунок 10. Выполнение SQL-запроса на создание базы данных

    Создание роли с помощью команды: CREATE ROLE server06 WITH LOGIN PASSWORD ‘server06’; Для роли server06 был задан одноименный пароль.



    Рисунок 11. Выполнение SQL-запроса на создание роли

    Переподключение к серверу с помощью команды: \c zhdanov06 server06;



    Рисунок 12. Выполнение команды для переподключения к базе данных

    Определение сущностей


    Создание схематического описания базы данных по описанию поставленной задачи.

    Поставленная задача: «В профессиональной волейбольной команде в итальянской суперлиге тренируются игроки и выполняют задачи. Каждый игрок может работать над несколькими задачами. Несколько человек могут работать над одной задачей. О игроках должно быть известно: имя, амплуа, возраст. О задачах должно быть известно: название, сложность, приоритет, отметка о выполнении».



    Рисунок 13. Проектирование базы данных

    Создание последовательностей осуществляется командами: CREATE SEQUENCE seq_personid;

    CREATE SEQUENCE seq_taskid;

    Создание таблиц “person”, “task” и “persontasks” реализуется с помощью команд: CREATE TABLE person

    (

    Id INT PRIMARY KEY DEFAULT nextval(‘seq_personid’),

    name TEXT,

    role TEXT,

    age INT2

    );

    CREATE TABLE task

    (

    Id INT PRIMARY KEY DEFAULT nextval(‘seq_taskid’),

    name TEXT,

    difficulty TEXT,

    priority TEXT,

    done BOOLEAN NOT NULL DEFAULT false

    );

    CREATE TABLE persontasks

    (

    idperson INT REFERENCES person ON DELETE CASCADE,

    idtask INT REFERENCES task ON DELETE RESTRICT

    );

    Проверка создания сущностей осуществляется с помощью мета-команды: \d – выводит список таблиц, представлений и последовательностей.



    Рисунок 14. Создание сущностей базы данных и последующая проверка

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



    Рисунок 15. Проверка правильности создания таблицы

    Выполнение операций над данными


    Создание файла для очистки и быстрого исправления ошибок. Файл назвать clear.sql и записать команды:

    ALTER SEQUENCE seq_personid RESTART WITH 1;

    ALTER SEQUENCE seq_taskid RESTART WITH 1;

    TRUNCATE persontasks, person, task;

    Создание файла вставки insert.sql:

    INSERT INTO person(name, role, age) VALUES ('Riccardo Sbertoli', 'Setter', 24);

    INSERT INTO person(name, role, age) VALUES ('Lorenzo Sperotto', 'Setter', 23);

    INSERT INTO person(name, role, age) VALUES ('Giulio Pinali', 'Opposite hitter', 25);

    INSERT INTO person(name, role, age) VALUES ('Daniele Albergati', 'Opposite hitter', 29);

    INSERT INTO person(id, name, role, age) VALUES (5, 'Matey Kaziyski', 'Outside hitter', 38);

    SELECT nextval('seq_personid');

    INSERT INTO person(name, role, age) VALUES ('Alessandro Michieletto', 'Outside hitter', 21);

    INSERT INTO person(name, role, age) VALUES ('Daniele Lavia', 'Outside hitter', 26);

    INSERT INTO person(name, role, age) VALUES ('Marko Podrascanin', 'Middle blocker', 35);

    INSERT INTO person(name, role, age) VALUES ('Srecko Lisinac', 'Middle blocker', 30);

    INSERT INTO person(name, role, age) VALUES ('Carlo De Angelis', 'Libero', 26);

    INSERT INTO task (id, name, difficulty, priority) VALUES (1, 'Set', 5, 7);

    SELECT nextval('seq_taskid');

    INSERT INTO task (name, difficulty, priority, done) VALUES ('Floating serve', 6, 10, false);

    INSERT INTO task (name, difficulty, priority) VALUES('Receive', 8, 6);

    INSERT INTO task (name, difficulty, priority) VALUES('Hit', 4, 9);

    INSERT INTO task (name, difficulty, priority) VALUES('Put a block', 7, 7);

    INSERT INTO persontasks(idperson, idtask) VALUES (1,1);

    INSERT INTO persontasks(idperson, idtask) VALUES (2,1);

    INSERT INTO persontasks(idperson, idtask) VALUES (1,2);

    INSERT INTO persontasks(idperson, idtask) VALUES (5,2);

    INSERT INTO persontasks(idperson, idtask) VALUES (10,2);

    INSERT INTO persontasks(idperson, idtask) VALUES (4,3);

    INSERT INTO persontasks(idperson, idtask) VALUES (5,3);

    INSERT INTO persontasks(idperson, idtask) VALUES (6,3);

    INSERT INTO persontasks(idperson, idtask) VALUES (3,4);

    INSERT INTO persontasks(idperson, idtask) VALUES (4,4);

    INSERT INTO persontasks(idperson, idtask) VALUES (5,4);

    INSERT INTO persontasks(idperson, idtask) VALUES (6,4);

    INSERT INTO persontasks(idperson, idtask) VALUES (7,4);

    INSERT INTO persontasks(idperson, idtask) VALUES (8,4);

    INSERT INTO persontasks(idperson, idtask) VALUES (9,4);

    INSERT INTO persontasks(idperson, idtask) VALUES (9,5);

    Создание файла select.sql для чтения данных:

    SELECT * FROM task;

    SELECT (name, role, age) FROM person ORDER BY age;

    SELECT * FROM persontasks WHERE idperson BETWEEN 1 AND 5 OR idtask = 1;

    Создание файла обновления данных update.sql:

    UPDATE person SET age = 24 WHERE name = 'Lorenzo Sperotto';

    UPDATE person SET age = 27 WHERE name = 'Carlo De Angelis';

    DELETE FROM task WHERE id = 5;

    DELETE FROM persontasks WHERE idtask = 5;

    DELETE FROM task WHERE id = 5;

    DELETE FROM person WHERE id = 9;



    Рисунок 16. Выполнение SQL-команд из файлов

    После выполнения команды был получен следующий результат:

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    nextval

    ---------

    5

    (1 строка)

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    nextval

    ---------

    1

    (1 строка)

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    INSERT 0 1

    id | name | difficulty | priority | done

    ----+----------------+------------+----------+------

    1 | Set | 5 | 7 | f

    2 | Floating serve | 6 | 10 | f

    3 | Receive | 8 | 6 | f

    4 | Hit | 4 | 9 | f

    5 | Put a block | 7 | 7 | f

    (5 строк)

    row

    ------------------------------------------------

    ("Alessandro Michieletto","Outside hitter",21)

    ("Lorenzo Sperotto",Setter,23)

    ("Riccardo Sbertoli",Setter,24)

    ("Giulio Pinali","Opposite hitter",25)

    ("Daniele Lavia","Outside hitter",26)

    ("Carlo De Angelis",Libero,26)

    ("Daniele Albergati","Opposite hitter",29)

    ("Srecko Lisinac","Middle blocker",30)

    ("Marko Podrascanin","Middle blocker",35)

    ("Matey Kaziyski","Outside hitter",38)

    (10 строк)

    idperson | idtask

    ----------+--------

    1 | 1

    2 | 1

    1 | 2

    5 | 2

    4 | 3

    5 | 3

    3 | 4

    4 | 4

    5 | 4

    (9 строк)

    UPDATE 1

    UPDATE 1

    DELETE 1

    DELETE 1

    DELETE 1

    id | name | difficulty | priority | done

    ----+----------------+------------+----------+------

    1 | Set | 5 | 7 | f

    2 | Floating serve | 6 | 10 | f

    3 | Receive | 8 | 6 | f

    4 | Hit | 4 | 9 | f

    (4 строки)

    row

    ------------------------------------------------

    ("Alessandro Michieletto","Outside hitter",21)

    ("Riccardo Sbertoli",Setter,24)

    ("Lorenzo Sperotto",Setter,24)

    ("Giulio Pinali","Opposite hitter",25)

    ("Daniele Lavia","Outside hitter",26)

    ("Carlo De Angelis",Libero,27)

    ("Daniele Albergati","Opposite hitter",29)

    ("Marko Podrascanin","Middle blocker",35)

    ("Matey Kaziyski","Outside hitter",38)

    (9 строк)

    idperson | idtask

    ----------+--------

    1 | 1

    2 | 1

    1 | 2

    5 | 2

    4 | 3

    5 | 3

    3 | 4

    4 | 4

    5 | 4

    (9 строк)

    ALTER SEQUENCE

    ALTER SEQUENCE

    TRUNCATE TABLE

    Вывод


    В ходе практической работы была установлена и настроена СУБД PostgreSQL, создана и настроена база данных, построена структурная схема и выполнены операции над данными.

    Ссылки


    1. https://app.diagrams.net – сервис для создания схем

    2. https://volleybox.net/ru/trentino-volley-t1898/players - информация о итальянской суперлиге


    написать администратору сайта