- •2. Лабораторная работа №2. Пользователи, транзакции и ограничения в PostgreSql
- •3. Создание таблиц в субд PostgreSql
- •3.1. Создание пользователей и баз данных
- •3.2. Команды для работы с таблицами. Создание, заполнение, модификация
- •3.3. Использование транзакций в PostgreSql
- •3.4. Выгрузка и загрузка базы данных
- •3.5. Создание ограничений
Лабораторная работа №1. Ознакомление с основами PostgreSQL
Цель работы: Изучить базовые операции по работе с базой данных. Изучить синтаксис команд. Приобрести навыки создания баз данных, создания, заполнения и модификации таблиц в PostgreSQL.
Задание. Общая часть: Создать и заполнить базу данных своего варианта в PostgreSQL. Таблицы (минимум по 10 записей в каждой) связать между собой полями идентификаторов. С помощью команд интерактивного терминала psql просмотреть структуру базы данных, структуру таблиц, просмотреть данные в них, изменить структуру таблиц, добавить столбцы, добавить данные, создать столбцы с пользовательскими типами данных.
Вариант 1: Создать и заполнить базу данных игроков хоккейной команды, состоящую из четырех таблиц. Первая таблица должна содержать поля: идентификатор_игрока, имя, фамилия, дата рождения, рост, вес и другие поля при необходимости. Вторая: игровая позиция (вратарь, защитник, нападающий), игровой номер, размер коньков, хват клюшки (левый или правый) и другие поля при необходимости. Третья: оклад, премия (выплата за каждое очко по системе «гол+пас»), штраф (за каждую минуту штрафного времени в игре, начиная с 30% игрового времени) и другие поля при необходимости. Четвертая: количество голов, количество голевых передач, штрафное время, игровое время и другие поля при необходимости. На основании созданных таблиц создать таблицу, содержащую, например, поля: имя, фамилия, игровая позиция, игровой номер, оклад, игровое время.
Вариант 2: Создать и заполнить базу данных для учета работы продуктового магазина, состоящую из трех таблиц. Первая таблица должна содержать поля: идентификатор_товара, наименование товара, количество товара на складе, стоимость покупки (за единицу измерения) и другие поля при необходимости. Вторая: идентификатор_производителя, наименование производителя, адрес и другие поля при необходимости. Третья: цена продажи, проданное количество товара и другие поля при необходимости. На основании созданных таблиц создать таблицу, содержащую, например, поля: наименование товара, наименование производителя, стоимость покупки, цена продажи.
Вариант 3: Создать и заполнить базу данных для службы такси, состоящую из трех таблиц. Первая таблица должна содержать поля: идентификатор_водителя, имя, фамилия, дата рождения, водительский стаж и другие поля при необходимости. Вторая: идентификатор_ автомобиля, марка автомобиля, тариф за 1 км и другие поля при необходимости. Третья: идентификатор_заказа, дата заказа, расстояние проезда и другие поля при необходимости. На основании созданных таблиц создать таблицу, содержащую, например, поля: имя, фамилия, марка автомобиля, тариф, дата заказа, расстояние.
Вариант 4: Создать и заполнить базу данных для обработки данных по работе книжной лавки, состоящую из четырех таблиц. Первая таблица должна содержать поля: идентификатор_жанра, наименование жанра, вид издания, количество страниц, стоимость. Вторая: идентификатор_книги, название книги, автор книги и другие поля при необходимости. Третья: идентификатор_издательства, наименование издателя, адрес издательства и другие поля при необходимости. Четвертая: идентификатор_страны, наименование страны. На основании созданных таблиц создать таблицу, содержащую, например, поля: название книги, автор книги, жанр, издательство, количество страниц.
Вариант 5: Создать и заполнить базу данных для осуществления учета работы автосалона, состоящую из четырех таблиц. Первая таблица должна содержать поля: идентификатор_автомобиля, наименование_автомобиля, год выпуска, пробег, цена и другие поля при необходимости. Вторая: руль (правый или левый), привод (передний, задний или полный), трансмиссия (механическая, автомат, типтроник и т. д.), тип двигателя (вид топлива, способ впрыска топлива) и другие поля при необходимости. Третья: марка автомобиля (Toyota, Honda, ВАЗ и т. п.), модель (accord, corolla и т. д.), тип кузова (седан, универсал, микроавтобус и т. д.) и другие поля при необходимости. Четвертая: идентификатор_страны, наименование страны. На основании созданных таблиц создать таблицу, содержащую, например, поля: марка, модель, тип кузова, руль, привод, тип двигателя, страна, стоимость.
Вариант 6: Создать и заполнить базу данных учета поступления товара на овощную базу, состоящую из четырех таблиц. Первая таблица должна содержать поля: идентификатор_поставки, дата поставки, вес, цена за кг и другие поля при необходимости. Вторая: идентификатор_продукта, наименование продукта, сорт и другие поля при необходимости. Третья: идентификатор_поставщика, наименование поставщика, адрес и другие поля при необходимости. Четвертая: идентификатор_страны, страна. На основании созданных таблиц создать таблицу, содержащую, например, поля: наименование товара, поставщик, вес, цена.
Вариант 7: Создать и заполнить базу данных для учета работы типографии, состоящую из трех таблиц. Первая таблица должна содержать поля: идентификатор_продукции, тип продукции (этикетка, упаковка и т. п.), количество, стоимость заказа и другие поля при необходимости. Вторая: идентификатор_заказчика, имя заказчика, адрес, способ расчета (наличный, безналичный). Третья: идентификатор_материала, тип используемого материала, количество материала, стоимость расходных материалов и другие поля при необходимости. На основании созданных таблиц создать таблицу, содержащую, например, поля: имя заказчика, тип продукции, тип используемого материала, стоимость заказа.
Вариант 8: Создать и заполнить базу данных студентов, проживающих в общежитии, состоящую из четырех таблиц. Первая таблица должна содержать поля: идентификатор_корпуса, корпус общежития, комната. Вторая: идентификатор_факультета, наименование факультета, фамилия декана и другие поля при необходимости. Третья: идентификатор_группы, группа, курс и другие поля при необходимости. Четвертая: идентификатор_студента, имя, фамилия, адрес прописки, размер стипендии. На основании созданных таблиц создать таблицу, содержащую, например, поля: имя, фамилия, факультет, группа, корпус, комната.
Вариант 9: Создать и заполнить базу данных ремонтной мастерской, состоящую из трех таблиц. Первая таблица должна содержать поля: идентификатор_заказа, дата заказа, количество ремонтируемых предметов и другие поля при необходимости. Вторая: идентификатор_предмета, вид ремонтируемого предмета, стоимость ремонта и другие поля при необходимости. Третья: идентификатор_мастера, имя, фамилия, дата рождения, адрес проживания. На основании созданных таблиц создать таблицу, содержащую, например, поля: имя, фамилия, вид ремонтируемого предмета, дата, стоимость.
Содержание отчета
Отчет должен содержать титульный лист, цель работы, задание, коды команд на каждом этапе выполнения работы, результаты выполнения команд (скриншоты), выводы и анализ результатов работы.
2. Лабораторная работа №2. Пользователи, транзакции и ограничения в PostgreSql
Цель работы: Приобрести навыки создания пользователей баз данных, работы с транзакциями, выгрузки и загрузки баз данных в PostgreSQL. Изучить основные команды по работе с базой данных. Получение навыков работы с ограничениями.
Задание. Общая часть: Ознакомиться с теоретическими сведениями о возможностях создания пользователей баз данных, использования транзакций в PostgreSQL. Создать нового пользователя и зайти под его именем. Создать и заполнить базу данных своего варианта. Таблицы (минимум по 10 записей в каждой) связать между собой полями идентификаторов. С помощью команд интерактивного терминала psql просмотреть структуру базы данных, структуру таблиц, просмотреть данные в них. Ознакомиться с теоретическими сведениями о возможностях создания ограничений в PostgreSQL. Наложить ограничения согласно своему варианту. Проверить работоспособность ограничений путем добавления в таблицы данных, удовлетворяющих и не удовлетворяющих условиям ограничений. Создать транзакционный блок, в котором производится добавление в таблицы произвольных полей, создать несколько производных таблиц, просмотреть структуру измененных таблиц. Не завершая транзакции параллельно запустить еще одно окно терминала, подключиться к базе и попробовать добавить и удалить записи в таблицы. Сделать откат транзакций, просмотреть структуру таблиц. Сохранить базу данных в файл. Удалить базу данных и восстановить ее из файла. Просмотреть и проанализировать полученную в результате выполнения операций информацию. Сохранить базу в файл для использования в следующих работах.
Вариант 1: Создать и заполнить базу данных игроков хоккейной команды, состоящую из четырех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: имя, фамилия, игровая позиция, игровой номер, оклад, игровое время. Запретить ввод роста хоккеиста более 220 см и менее 150 см. Поле «хват клюшки» должно содержать только значения правый и левый. «Игровая позиция» может быть только вратарь, нападающий или защитник.
Вариант 2: Создать и заполнить базу данных для учета работы продуктового магазина, состоящую из трех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: Наименование товара, наименование производителя, стоимость покупки, цена продажи. Ограничить поля «цена» и «стоимость» так, чтобы они не содержали значений ниже 10 р. и выше 1500р. Проданное количество товара не может быть отрицательным. Дата покупки должна соответствовать действительности (не должна быть в будущем).
Вариант 3: Создать и заполнить базу данных для службы такси, состоящую из трех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: имя, фамилия, марка автомобиля, тариф, дата заказа, расстояние. Ограничить ввод даты рождения водителя таким образом, чтобы нельзя было ввести данные о лицах, не достигших возраста 20 лет. Расстояние не может быть отрицательным.
Вариант 4: Создать и заполнить базу данных для обработки данных по работе книжной лавки, состоящую из четырех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: название книги, автор книги, жанр, издательство, количество страниц. Ограничить заполнение поля «жанр» следующими наименованиями: детектив, роман, повесть, рассказ, пьеса, новелла. На поле «стоимость» наложить ограничение таким образом, чтобы нельзя было ввести цену ниже 50 р.
Вариант 5: Создать и заполнить базу данных для осуществления учета работы автосалона, состоящую из четырех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: марка, модель, тип кузова, руль, привод, двигатель, страна сборки, стоимость. Наложить ограничение на поле «привод»: оно должно содержать только «полный», «передний», «задний». Поле «руль» может содержать только значения правый и левый. Дата выпуска не должна быть больше текущей даты.
Вариант 6: Создать и заполнить базу данных учета поступления товара на овощную базу, состоящую из четырех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: Наименование товара, поставщик, вес, цена. Для поля «вес» ограничить ввод значений менее 10 кг. Дата поставки должна соответствовать действительности (не должна быть в будущем).
Вариант 7: Создать и заполнить базу данных для учета работы типографии, состоящую из трех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: имя заказчика, тип продукции, тип используемого материала, стоимость заказа. Поле «количество» не должно содержать значений менее 100 шт. Поле «способ расчета» может содержать только: наличный и безналичный. Стоимость заказа не должна быть отрицательной.
Вариант 8: Создать и заполнить базу данных студентов, проживающих в общежитии, состоящую из четырех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: имя, фамилия, факультет, группа, корпус, комната, стипендия. Ограничить размер стипендии, она не должна превышать 3500 р. и быть менее 750 р. Ограничить ввод значений поля «курс» целыми числами от 1 до 6.
Вариант 9: Создать и заполнить базу данных ремонтной мастерской, состоящую из трех таблиц. На основании созданных таблиц создать таблицу, содержащую поля: имя, фамилия, вид ремонтируемого предмета, дата, стоимость. На поле даты наложить ограничение таким образом, чтобы нельзя было ввести дату более сегодняшней. Возраст мастеров не должен быть менее 18 лет. Стоимость не должна быть отрицательной.
Содержание отчета
Отчет должен содержать титульный лист, цель работы, задание, коды команд на каждом этапе выполнения работы, результаты выполнения команд (скриншоты), выводы и анализ результатов работы.
