Добавил:
Меня зовут Катунин Виктор, на данный момент являюсь абитуриентом в СГЭУ, пытаюсь рассортировать все файлы СГЭУ, преобразовать, улучшить и добавить что-то от себя Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика / Теория / Базы данных СГЭУ - Курсовое_проектирование_для заочников.docx
Скачиваний:
14
Добавлен:
09.08.2023
Размер:
3.84 Mб
Скачать

Вариант 4

  1. Спроектировать базу данных методом нормализации и методом семантического моделирования. Данные, которые должны храниться в базе, представлены в виде одной таблицы со следующими столбцами:

код поставщика

наименование поставщика,

код товара,

наименование товара,

дата поставки,

количество поставленного товара,

цена поставленного товара

код покупателя,

наименование покупателя,

дата покупки,

код купленного товара,

цена купленного товара.

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

В первой главе курсового проекта описать процесс проектирования базы данных методом нормализации таблиц и методом семантического моделирования.

  1. Разработать базу данных, таблицы и заполнить их данными. Складов должно быть не менее четырех. Номенклатура товаров должна содержать не менее 10 наименований, список покупателей и список поставщиков – не менее пяти человек, список поставленных товаров и список купленных товаров не менее 20 строк каждый.

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

  • NOT NULL – для полей, которые будут являться первичными и внешними ключами,

  • PRIMARY KEY – для полей, выбранных в качестве первичных ключей,

  • FOREIGN KEY – для полей, являющихся внешними ключами,

  • CHECK для полей «Дата поставки» и «Дата продажи» (не позже системной даты), а также для полей «Цена поставленного товара», «Цена купленного товара» (их значения должны быть положительными числами).

  • DEFAULT для поля «Количество поставленного товара» (его значение должно быть не менее 10 единиц).

Построить диаграмму базы данных.

  1. В третьей главе курсового проекта «Основные команды SQL для извлечения, добавления и изменения данных» выполнить следующие действия и представить их результаты.

    1. Показать список поставленных товаров заданного наименования за определенный период (показать поля: код товара, наименование товара, цена товара, дата поставки, количество, стоимость товара).

    2. Подсчитать общее количество поступившего товара каждого наименования и общее количество проданного товара каждого наименования и остатки каждого товара.

    3. В новую таблицу скопировать данные о поставках определенного поставщика. Показать следующие поля: код поставщика, наименование поставщика, дата поставки, код товара, наименование товара, цена, количество.

    4. Показать первые три товара, стоимость продаж которых является наибольшей.

    5. Для заданного интервала дат показать список товаров, цена продажи которого больше цены поставки на не менее, чем на 10%.

    6. Показать список товаров, цена продажи которых выше средней цены продажи.

    7. Увеличить на 3% цену тех товаров, цена продажи которых ниже средней продажной цены.

  2. В четвертой главе должны быть представлены разработанные процедуры и функции, созданные с помощью языка программирования SQL.

    1. Создать функцию для определения стоимости проданного товара с параметрами: код товара, количество товара.

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

    3. Создайте процедуру, которая бы заполнила данными новую таблицу, в которой должны присутствовать следующие поля: код товара, наименование товара, наличие товара(общая сумма поставки-общая сумма продажи).

  3. В пятой главе должны быть разработаны и отображены средства обеспечивающие целостность данных в создаваемой базе данных с помощью триггеров.

    1. Создайте триггер, который бы при попытке ввода новой записи о продаже товара, проверял, в достаточном ли количестве имеется данный товар и выдавал ошибку, если это не так.

    2. Создайте триггер, который бы препятствовал изменению поля код товара в таблице поставки.