ТЕОРИЯ МАССОВЫХ КОММУНИКАЦИЙ И МАССМЕДИА КР. Массовые_коммуникации_КР. Курсовая работа по дисциплине управление данными вариант Фамилия Имя Отчество
Скачать 0.71 Mb.
|
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ им. проф. М. А. Бонч-Бруевича (СПбГУТ) Институт Непрерывного Образования (ИНО) КУРСОВАЯ РАБОТА по дисциплине УПРАВЛЕНИЕ ДАННЫМИ Вариант 2. Фамилия: Имя: Отчество: № зачётной книжки: Группа №: Проверил: ______________ Санкт-Петербург 2020 2 Техническое задание №2 На курсовую работу по дисциплине «Управление данными» Тема – разработка информационной системы для филателистов общества. 1. Постановка задачи. Произвести проектирование информационной системы, в базе данных которой хранятся сведения об имеющихся у коллекционеров филателистического общества марках. О каждой марке хранится следующая информация: раздел, тема марки, страна, серия, размер, цена, её местонахождение (местонахождение - номер раздела (темы), номер альбома, номер страницы и уникальное положение марки на странице). Местонахождение марки может меняться. Необходимо предусмотреть: добавление информации о новых марках новой темы и удаление всех марок одной темы; изменения места расположения марки у конкретного филателиста; выдачу: перечня стран, чьи марки содержатся в данном разделе; номеров альбомов и фамилии филателистов, где хранятся марки заданной темы; перечень тем для серий, включающих марки определённого размера; темы марок заданной страны и их количество у каждого филателиста; страны, где выпущена марка; отчёт по коллекциям (общее количество марок в коллекции, фамилия владельца, назначение тем и количество марок по каждой теме). 3 Содержание 4 Введение. Немного бла-бла про марки. 5 Раздел 1. Инфологическое проектирование. Описание предметной области. Предметная область – это преобразование реальной картины рассматриваемой части мира в умозрительную структуру. Рассматриваемая база данных предназначена для хранения информации о коллекциях марок членов сообщества филателистов. Объектами предметной области являются марки. О каждой марке имеется следующая информация: тема; серия; страна выпуска; цена; размер; местонахождение в каталоге. Для удобства будем использовать тематический подход коллекционирования. В базе данных находится полный путь к месторасположению марки, начиная с раздела и заканчивая уникальной ячейкой марки на странице. База данных должна предусматривать добавление, удаление, изменение и выдачу различной информации о коллекциях, марках, их местонахождении и т. д. Задача данной информационной системы – ускорить процесс создания и управления каталогами марок и упростить поиск необходимой информации. Разработка инфологической модели. Инфологическое проектирование – это построение информационной модели предметной области. В нём необходимо обозначить: сущности – объекты, информация о которых хранится в базе данных; атрибуты – характеристики сущностей; связи – сопоставление сущностей. Вся коллекция разбита на разделы, в каждом из которых есть несколько тем. Каждая тема может содержать один или несколько томов, у каждого из которых есть владелец. Также марке приписывается номер страницы, на которой она находится, и номер ячейки (уникального положения на странице). 6 Рисунок 1. ER-диаграмма Сущность Первичный ключ Атрибуты Раздел Код раздела Название раздела Тема Код темы Код раздела Название темы Том Код тома Код темы Код раздела Владелец Страница Код страницы Код тома Номер страницы Марка Код марки Код страницы Номер ячейки Название Серия Страна Размер Цена Филателист Код филателиста Фамилия Имя Таблица 1. Определение атрибутов и первичных ключей 7 На основе этих данных для каждой сущности строится таблица. Таблицы связываются по определённому признаку связью типа «один ко многим». Для этого в каждой таблице необходимо поле, которое будет связано с первичным ключом другой таблицы. Раздел 2. Даталогическое проектирование. Физическое проектирование – это создание схемы базы данных для конкретной СУБД. Физическая модель содержит всю информацию, необходимую для реализации конкретной БД. Различают два уровня физической модели: трансформационная модель (содержит всю информацию, необходимую для реализации в среде конкретной СУБД и даёт возможность проверить соответствие физической модели данных требованиям моделируемой системы); модель СУБД (получается путём автоматической генерации из трансформационной модели и является отображением системного каталога СУБД). Таблицы. Для создания базы данных используется Microsoft Office Access 2016. Исходя из данных ER-диаграммы, составляем следующие таблицы для каждой сущности: Марка: Раздел: 8 Страница: Тема: Том: Филателист: Работать с таблицами можно в режиме конструктора (как на скриншотах) или в режиме таблицы (в этом режиме можно заполнять данные). Рисунок 2. Физическая модель данных 9 Формы. Формы предоставляют область просмотра данных, помогают придать базе данных безупречный и профессиональный вид, а также позволяют: выполнять проверку корректности данных при вводе, проводить вычисления; забыть о неудобствах, возникающих при работе с таблицами, имеющими большое количество полей. Работать с формами можно в режиме формы, в режиме таблицы и в режиме конструктора. Также формы можно легко создавать при помощи мастера форм. Запросы. Запросы предназначены для поиска в базе данных информации, отвечающей каким-либо критериям. Существует несколько типов запросов: на выборку, на обновление, на добавление, на удаление, перекрёстный запрос, создание таблиц. Запросы можно создавать при помощи мастера запросов или вручную в режиме конструктора. 1. Запрос на удаление всех марок заданной темы: Фрагмент таблицы «Марка» до удаления: 10 После удаления: SQL-код: DELETE Марка.*, Тема.[Название темы] FROM (Тема INNER JOIN Том ON Тема.[Код темы] = Том.[Код темы]) INNER JOIN (Страница INNER JOIN Марка ON Страница.[Код страницы] = Марка.[Код страницы]) ON Том.[Номер тома] = Страница.[Номер тома] WHERE (((Тема.[Название темы])=[Имя темы])); 2. Запрос на выдачу перечня стран, чьи марки содержатся в данном разделе: Результат при запросе «Путешествия»: 11 Код SQL: SELECT DISTINCT Марка.Страна FROM (( Раздел INNER JOIN Тема ON Раздел.[Код раздела] = Тема.[Код раздела]) INNER JOIN Том ON Тема.[Код темы] = Том.[Код темы]) INNER JOIN ( Страница INNER JOIN Марка ON Страница.[Код страницы] = Марка.[Код страницы]) ON Том.[Номер тома] = Страница.[Номер тома] WHERE (((Раздел.[Название раздела])=[Имя раздела])); 3. Запрос на выдачу номеров томов и фамилии филателистов, где хранятся марки заданной темы: Результат при запросе «Писатели»: Код SQL: 12 SELECT Том.[Номер тома], Филателист.Фамилия FROM Филателист INNER JOIN (Тема INNER JOIN Том ON Тема.[Код темы] = Том.[Код темы]) ON Филателист.[Код филателиста] = Том.[Код филателиста] WHERE (((Тема.[Название темы])=[Имя темы])); 3. Запрос на выдачу перечня тем для серий, включающих марки определённого размера: Результат при запросе «25*30»: SQL-код: SELECT Тема.[Название темы], Марка.Серия FROM (Тема INNER JOIN Том ON Тема.[Код темы] = Том.[Код темы]) INNER JOIN (Страница INNER JOIN Марка ON Страница.[Код страницы] = Марка.[Код страницы]) ON Том.[Номер тома] = Страница.[Номер тома] WHERE (((Марка.Размер)=[Размер марки])); 5. Запрос на выдачу тем марок заданной страны и их количества у отдельных филателистов: 13 Результат при запросе «Италия»: Результат при запросе «США»: SQL-код: SELECT Тема.[Название темы], Count(Марка.[Номер ячейки]) AS [Count- Номер ячейки], Филателист.Фамилия FROM Филателист INNER JOIN ((Тема INNER JOIN Том ON Тема.[Код темы] = Том.[Код темы]) INNER JOIN (Страница INNER JOIN Марка ON Страница.[Код страницы] = Марка.[Код страницы]) ON Том.[Номер тома] = 14 Страница.[Номер тома]) ON Филателист.[Код филателиста] = Том.[Код филателиста] GROUP BY Тема.[Название темы], Филателист.Фамилия, Марка.Страна HAVING (((Марка.Страна)=[Откуда марка])); 6. Запрос на выдачу страны, где выпущена марка: Результат при запросе «4» - «2» - «2» - «Кошачьи» - «Животные»: SQL-код: SELECT Марка.Страна, Марка.[Номер ячейки], Страница.[Номер страницы] FROM ((Раздел INNER JOIN Тема ON Раздел.[Код раздела] = Тема.[Код раздела]) INNER JOIN Том ON Тема.[Код темы] = Том.[Код темы]) INNER JOIN (Страница INNER JOIN Марка ON Страница.[Код страницы] = Марка.[Код страницы]) ON Том.[Номер тома] = Страница.[Номер тома] WHERE (((Марка.[Номер ячейки])=[Ячейка №]) AND ((Страница.[Номер страницы])=[Страница №]) AND ((Том.[Номер тома])=[Том №]) AND ((Тема.[Название темы])=[Тема]) AND ((Раздел.[Название раздела])=[Раздел])); |