Министерство образования и науки РФ
Новосибирский государственный технический университет
Кафедра вычислительной техники
Лабораторная работа № 5-6
по дисциплине «Базы данных»
«Функции в PostgreSQL. Проектирование структуры БД.»
Факультет: АВТ Группа: АВТ-909 Студенты: Имеков Д.Б. Гоголи А.Г. Вариант: 2 |
Преподаватель: Трошина Г.В. |
Новосибирск, 2012
Цель работы.
Изучить правила создания функций. Приобрести практические навыки создания функций в среде PostgreSQL. Научиться проектировать БД в целом на основе поставленного задания с использованием всех полученных ранее базовых знаний и навыков.
Задание. Общая часть
Ознакомиться с теоретическими сведениями о возможностях создания пользовательских функций в PostgreSQL. Разработать БД в соответствии с индивидуальным заданием. Создать функции, реализующие интерфейс для работы с базой данных. Проверить работоспособность функций путем выполнения этих функций с параметрами, обеспечивающими как успешное выполнение функции, так и невыполнение функции.
Обязательные требования к БД:
1) Наличие таблиц-справочников и таблиц, использующих справочники. Предусмотреть сохранение ссылочной целостности для таблиц, использующих таблицы-справочники.
2) Предусмотреть следующие роли:
а) оператор БД (пополнение справочников)
б) пользователь БД (основная работа с БД, с ограничениями для некоторого вида операций)
в) аналитик (разрешено выполнение запросов и функций, не изменяющих данные в БД)
г) администратор БД (просмотр протокола операций, любые изменения БД)
3) Действия, изменяющие БД пользователем с любой ролью протоколируются в таблице-журнале операций.
4) Для всех запросов необходимо создать индексы (для гарантированного использования индексов можно использовать отключение параметра enable_seqscan в текущей сессии)
Создать функции, реализующие интерфейс для работы с базой данных. Проверить работоспособность функций путем выполнения этих функций с параметрами, обеспечивающими как успешное выполнение функции, так и невыполнение функции.
Вариант 2
База данных сети магазинов продуктов питания. Должна содержать следующие данные: информация о магазинах и имеющихся запасах продуктов, данные о продажах. Предусмотреть анализ следующих показателей: рейтинг популярности товаров, сумма среднего чека по магазину в разное время суток.
Описание структуры лабораторной работы:
id serial |
shop_name character varying(40) |
shop_city character varying(40) |
Идентификатор |
Имя магазина |
Город магазина |
· tovar таблица с товарами.
id serial |
shop_id integer |
tovar_name character varying(40) |
tovar_price integer |
count_whs integer |
count_sold_out integer |
maker_name character varying(40) |
arhiv boolean |
id магазина |
название товара |
цена товара |
количество на складе |
количество проданных товаров |
произво- дитель |
статус |
· sold_outтаблица с информацией о продажах.
id bigint |
buyer integer |
shop_id integer |
tovar_id integer |
bought_count integer |
buy_date timestamp without time zone |
Номер чека |
Индекс магазина |
Индекс товара |
Количество покупок |
Дата покупки |
· buyersтаблица с информацией о каждой покупке (автоматическое заполнение).
shop_id integer |
buyer_id integer |
bill integer |
buy_date timestamp without time zone |
Индекс магазина |
Номер чека |
Сумма покупок |
Дата покупки |
· log_tableтаблица-журнал операций.
id bigint |
cur_user character varying |
time timestamp without time zone |
message text |
Индекс |
Пользователь |
Время |
Описание действия |
· rating_tтаблица, содержащая рейтинг товаров.
tovar_name character varying |
maker_name character varying |
rating float(2) |
название |
производитель |
рейтинг |
Список функций, реализующих интерфейс для работы с базой данных:
Функция записывает данные в журнал. На вход получает информацию об операции, полученную от другой функции.
Функция для добавления нового магазина. Передаваемые параметры: название магазина и имя города.
Функция для добавления информации о продаже. Передаваемые параметры: номер чека, индекс магазина, индекс товара, проданное количество, дата продажи. При добавлении информации о продаже, автоматически заполняется таблица с информацией о каждом покупателе.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.