
всем здарова / задания лаб / 1лр / бд 1 лр
.rtfUgСоздание базы данных
Создайте учебную базу данных Students. Для этого необходимо войти в учетную запись postgres и подключиться к программе psql.
Выйдите из программы psql и заполните базу данных, используя файл резервной копии.
Пишу в терминале - exit чтобы выйти из программы psql
psql
название_БД < название_выходного_файла
- наш файл Students_dump.sql
воспользовался встроенными функциями
Используя программу pgAdmin, ознакомьтесь со схемой данных, содержимым таблиц БД. Определите число строк в каждой из таблиц.
Schemas -> public -> Tables. Здесь вы увидите список всех таблиц базы данных
И нажать на count rows (пкм по таблице)
Определите, какие таблицы в базе данных Students являются главными, а какие для них подчиненными.
Студент груп > студенты > и тд …
Задание 2.
Администрирование СУБД
Подключитесь к созданной базе данных Students из-под командной строки. Определите, какой размер на диске занимает таблица student?
psql -U postgres -d students
где -U (User): -d (Database):
SELECT
pg_size_pretty(pg_total_relation_size('student'));
Создайте новую роль «Ваши инициалы junior». Выделите ей привилегии на вход и установите пароль «654321». Подключитесь от её имени к базе данных students и попробуйте удалить её с помощью запроса:
Промпт =# (Суперпользовательский):
Когда вы видите =#, это означает, что вы имеете полный доступ к базе данных и можете выполнять административные команды, такие как создание или удаление ролей и баз данных.
Промпт -# (Многострочный ввод):
Когда вы видите -#, это означает, что команда ещё не завершена, и вы должны продолжить ввод. Обычно это происходит, если вы забыли закрыть кавычки или скобки.
\q
CREATE
ROLE XY_junior WITH LOGIN PASSWORD '654321';
DROP
ROLE XY_junior;
- нельзя
удалить
т.к
Удалось ли вам это сделать?
Нет
Задание 3.
Редактирование содержимого базы данных
Выполните в соответствии с вариантом задание (см. таблицу ниже) на изменение содержимого базы данных.
После внесенных изменений, создайте новую резервную копию базы данных Students.
Вариант - 1
Студентка группы ИВТ-32 Барашкова Настасья Филлиповна пересдала экзамен по Основы теории информации и кодирования на 4. Исправьте её оценку. (ошибка в отчестве)
Psql -U postgres -d students -f ~/students_dump.sql – загоняю файл в базу
Psql -U postgres -d students
\dt
SELECT * FROM students LIMIT 1000;
Сначала надо найти таблицу с оценками
EXPLAIN // типо дебаггер
UPDATE field_comprehensions
SET mark = 4
FROM fields f, students_groups sg, students s
WHERE field_comprehensions.field = f.field_id
AND f.field_name = 'Основы теории информации и кодирования'
AND field_comprehensions.student_id = s.student_id // объеденил
AND s.student_id = '885803'
AND sg.students_group_number = 'ИВТ-32'
AND s.last_name = 'Барашкова'
AND s.first_name = 'Настасья'
AND s.patronymic = 'Филипповна';
Убедился, что работает
pg_dump -U your_username -d students -F c -f /path/to/backup/students_backup.dump
your_username — это ваше имя пользователя PostgreSQL (например, postgres).
-d students — указание базы данных students, которую вы хотите сохранить.
-F c — указывает, что резервная копия будет создана в формате "custom" (это сжатый и переносимый формат).
-f /path/to/backup/students_backup.dump — путь и имя файла, в который будет сохранена резервная копия (укажите корректный путь).