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

Вариант 9

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

Код абонента

ФИО абонента

Адрес

Номер телефона

Код тарифа

Наименовании тарифа (повременный, безлимитный)

Дата и время разговора

Код города

Количество минут разговора

Цена одной минуты

С домашнего телефона можно производить местные звонки, оплата которых зависит от тарифа. Существует две разновидности тарифов: повременный и безлимитный. По повременному тарифу абонент платит абонентскую плату 150 р/м и 24 коп. за каждую минуту местного разговора. При безлимитном тарифе не учитывается время местных разговоров, а взимается только абонентская плата 400 р/м. Междугородные разговоры оплачиваются согласно тарифам на междугородные переговоры в зависимости от кода города и количества минут разговора.

Список абонентов должен содержать не менее десяти фамилий. Список городов – не менее 5-8 городов, список разговоров – не менее тридцати строк.

  1. Разработать базу данных, таблицы и заполнить их данными.

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

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

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

  • FOREIGN KEY – для полей, являющихся внешними ключами(создается при построении диаграммы базы данных),

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

3. Структуры таблиц и содержимое таблиц привести во второй главе пояснительной записки к курсовому проекту «Создание таблиц».

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

    1. Показать список всех разговоров определенного абонента за заданный календарный период

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

    3. Занести в список разговоров новую запись.

    4. Увеличить стоимость одной минуты междугородных переговоров с Москвой, Санкт-Петербургом и Казанью на 10%.

    5. В новую таблицу поместить сведения о всех междугородних разговорах определенного абонента за определенный месяц. В новой таблице должны быть следующие поля: номер телефона, ФИО абонента, дата и время разговора, код города, стоимость одной минуты, количество минут разговора, стоимость разговора.

    6. Определить абонентов, стоимость междугородных переговоров которых выше средней стоимости всех междугородных переговоров.

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

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

    2. Создать процедуру с использованием функции, созданной в задании 5.1 для выдачи счета определенному абоненту за определенный месяц. В нем сверху указать код телефона и ФИО абонента, в каждой строке вывести дату и время разговора, код города, стоимость одной минуты, стоимость разговора. Затем вывести с помощью функции общую стоимость всех разговоров, и в зависимости от кода тарифа данного абонента – сумму абонентской платы. Затем подвести общий итог за месяц.

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

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

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