Министерство образования и науки РФ
Государственное образовательное учреждение высшего профессионального образования
Новосибирский Государственный Технический Университет
Кафедра Вычислительной техники
Расчетно-графическое задание
по дисциплине «Базы данных»
Студент: Кузьминых А.И., гр. АВТ-918
Преподаватель: Трошина Г. В.
Вариант: 14
Дата сдачи:
Новосибирск, 2012
Оглавление
Задание. 3
Содержание таблиц в создаваемой базе данных. 4
Структуры таблиц в создаваемой базе данных. 4
Графическое представление связей между файлами. 4
Реализация базы данных на языке SQL в среде PostgreSQL. 5
Создание базы данных и необходимых таблиц. 5
Создание функций по заданию.. 5
Руководство пользователя. 10
Тексты запросов и примеры работы.. 13
Анализ результатов и выводы.. 13
Приложение 1. Пример заполнения таблиц, достаточный для демонстрации основных функций БД. 18
Приложение 2. Очистка всех таблиц и удаление базы данных. 18
Основная база данных «Электроприборы». Предусмотреть: ввод данных, редактирование, просмотр данных. Реализовать с использованием нескольких таблиц следующие типы запросов:
- по дате выпуска;
- в алфавитном порядке по поставщику;
- по весу;
- по стоимости;
- по дате продажи;
§ Найти самый дорогой вид электроприборов, самый дешёвый, среднюю стоимость по каждому виду и в целом.
§ Найти электроприборы с ценой в заданных пределах (предусмотреть ввод цены с клавиатуры).
§ Найти все электроприборы заданного производителя (выбор).
§ Найти все электроприборы с заданной датой выпуска (ввод даты).
§ Найти все электроприборы, чей вес находится в заданных пределах (ввод интервала) для заданного производителя (выбор) и в целом.
§ Найти долю электроприборов, проданных за определенный период (ввод периода) от общего времени продаж.
§ Найти самый популярный вид электроприбора (продано наибольшее количество).
§ Найти долю дешевых электроприборов (чья стоимость меньше заданной, ввод стоимости), поступивших от заданного поставщика и в целом.
§ Найти количество бракованных электроприборов, поступивших из заданной страны (ввод страны, выбор) для заданного поставщика (ввод поставщика, выбор).
§ Найти среднюю стоимость электроприборов, проданных за определенный промежуток времени (ввод интервала).
§ Найти все электроприборы, чья стоимость выше, чем средняя стоимость электроприборов заданного производителя.
Будем считать, что база данных создается для магазина с электроприборами, поэтому необходимо создать следующие таблицы, входящие в базу данных.
1. Вид электроприбора. В этой таблице будут явно перечислены все возможные виды электроприборов, такие как холодильник, пылесос, кофеварка, другое.
2. Список поставщиков. В таблице будут перечислены наименования поставщиков.
3. Список производителей. Наименование производителя, страна.
4. Список электроприборов. Это основная таблица в нашей базе данных, в ней будет храниться следующая информация: id, название электроприбора, его вид, поставщик, производитель, страна, вес, розничная цена и дата выпуска. Поля, совпадающие с одноименными таблицами, будут хранить только id.
5. Содержимое магазина. В этой таблице три поля - id электроприбора из таблицы 6, а также количество товаров в данном магазине и количество брака.
6. Таблица продаж. В этой таблице два поля – id электроприбора, количество проданного, дата его продажи.
1. Types (id serial, type_ varchar)
2. Supplier (id serial, name_sup varchar)
3. Manufacturer (id serial, title varchar, country varchar)
4. List (id int, name varchar, type_id int, sup_id int, manuf_id int, date_ date, weight int, price float)
5. Content (id int, num int, defects int)
6. Sales (id int, n_sale int, date_ date)
create database electrical_devices;
create table Types (id serial, type_ varchar);
create table Supplier (id serial, name_sup varchar);
create table Manufacturer (id serial, title varchar, country varchar);
create table List (id int, name varchar, type_id int, sup_id int, manuf_id int, date_ date, weight int, price float);
create table Content (id int, num int, defect int);
create table Sales (id int, n_sales int, date_ date);
CREATE FUNCTION task1(VARCHAR) RETURNS SETOF record LANGUAGE plpgsql SECURITY DEFINER AS
$$
DECLARE
rec RECORD;
BEGIN
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.