Разработка базы данных для предметной области «Музей. Курсовая работа по БД. Курсовая работа по дисциплине Базы и хранилища данных Разработка базы данных для предметной области Музей
Скачать 1.18 Mb.
|
МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Челябинский государственный университет» (ФГБОУ ВО «ЧелГУ») Институт информационных технологий Кафедра информационных технологий и экономической информатики КУРСОВАЯ РАБОТА по дисциплине «Базы и хранилища данных» « Разработка базы данных для предметной области «Музей» (тема) Выполнил студент____ (Ф.И.О.) группы _____ заочной формы обучения направления подготовки ________________________________ (подпись) «____» ______ ______ _г.
Челябинск 2021 Лист задания Провести анализ предметной области по следующему описанию: Разрабатываемая система должна хранить в себе информацию о деятельности музея, т.е. о залах, экспонатах, сотрудниках. Мы должны иметь представление, какой экспонат в каком месте находится и какой сотрудник за ним закреплен в качестве смотрящего. А также вести учет проводимых в музее экскурсий. Перечень входных (первичных) документов. В качестве первичных документов для решения данной задачи используются :
Ограничения предметной области: В музее находится 6 выставочных залов и 3 этажа; На каждом этаже находится по 2 выставочных зала; В одном зале находится несколько экспонатов, но не более 15; За каждым экспонатом закреплен только один смотрящий, но один смотрящий может быть закреплен за несколькими экспонатами; Все даты в системе хранятся в виде: DD/MM/YYYY; Все телефоны хранятся в виде: +79872765453 (т.е. начинаются с +7); В атрибуте “площадь зала” информация хранится в виде квадратных метрах; экспонаты поступают почти ежемесячно; В один день может проводиться несколько экскурсий; Количество человек в экскурсионной группе не должно превышать 20. Выполнить концептуальное (инфологическое) проектирование. Выполнить даталогическое проектирование для реляционной базы данных. Выбрать СУБД (обосновав выбор) и выполнить физическое проектирование. Создать базу данных в выбранной СУБД с учетом ограничений предметной области. Реализовать следующие отчеты (запросы): Вывести всю информацию о экспонатах, которые поступили в музей совсем недавно (на протяжении последнего полугодия); Необходимо знать, какие сотрудники работают на определенном этаже музея (номер этажа задается пользователем при поиске), приглядывая за экспонатами и вывести об этих сотрудниках всю информацию; Подсчитать количество проведенных экскурсий за все время работы музея за определенный сезон (лето, осень, весна, зима) по выбору пользователя. Вывести количество экспонатов в каждом из залов музея, которые поступили в музей позднее заданной пользователем даты. Выбрать язык программирования и разработать приложение для работы с БД (формы ввода/редактирования данных и отчеты). Оформить пояснительную записку. Введение Базы данных - это совокупность структур, предназначенных для хранения больших объемов информации и программных модулей, осуществляющих управление данными, их выборку, сортировку и другие подобные действия. Информация базы данных хранится в одной или нескольких таблицах. Любая таблица с данными состоит из набора однотипных записей, расположенных друг за другом. Они представляют собой строки таблицы, которые можно добавлять, удалять или изменять. Каждая запись является набором именованных полей, или ячеек, которые могут хранить самую разнообразную информацию, начиная от даты рождения и заканчивая подробным описанием кулинарного рецепта. Однотипные поля разных записей образуют столбец таблицы. Создав одну таблицу, вы уже получаете полноценную базу данных. Однако в реальной жизни структуры баз данных, а соответственно и способы их создания, намного сложнее. В последние годы на первый план выдвигается новая отрасль - информационная индустрия, связанная с производством технических средств, методов, технологий для производства новых знаний. Эта индустрия тесно связана с развитием компьютерных технологий. В информационном обществе доминирует производство информационного продукта, а материальный продукт становится более информационно емким. Изменятся весь уклад жизни, система ценностей: возрастает значимость культурного досуга, возрастает спрос на знания, от человека требуется способность к интеллектуальному труду и творчеству. В результате появились противоречия между ограниченными возможностями человека по восприятию и переработке информации и существующими массивами хранящейся и передаваемой информации. Возникло большое число избыточной информации, в которой иногда трудно сориентироваться и выбрать нужные сведения. Для решения подобных проблем применяются автоматизированные базы данных. Они стали неотъемлемой частью практически всех компьютерных систем - от отрасли до отдельного предприятия. За последние несколько лет вырос уровень потребительских качеств систем управления базами данных (СУБД): разнообразие поддерживаемых функций, удобный для пользователя интерфейс, сопряжение с программными продуктами, в частности с другими СУБД, возможности для работы в сети и т.д. СУБД позволяет сводить воедино информацию из самых разных источников (электронные таблицы, другие базы данных) и помогает быстро найти необходимую информацию, донести ее до окружающих с помощью отчетов, графиков или таблиц. База данных, которая была грамотно создана с учетом всех требований пользователей, которая отличается целостностью информации и непротиворечивостью, а также правильной структурой и простотой использования, будет более востребована в любой сфере деятельности. К настоящему времени накоплен значительный опыт проектирования БД, предназначенных для управления производством, это позволяет сделать процесс создания БД более эффективным. Целью моей работы являются создание базы данных анатомическому музею, закрепление и систематизация ранее полученных знаний. Для реализации данной цели необходимо выполнить следующие задачи: Изучение особенностей предметной области Разработка схемы БД Реализация разработанной схемы в конкретной СУБД (MSAccess) Создание форм для ввода данных, отчетов, запросов Автоматизация работы с созданной БД Решение этих задач предусматривает создание базы данных музея. На основе полученных моделей привести примеры теоретико-множественных и специальных операций реляционной алгебры. Спроектировать и реализовать разработанную модель в среде СУБД MS Access. Создать таблицы, формы, запросы и отчеты по данной БД. Анализ предметной области Музей - учреждение, занимающееся собиранием, изучением, хранением и экспонированием предметов -- памятников естественной истории, материальной и духовной культуры, а также просветительской и популяризаторской деятельностью. Современный музей в борьбе за внимание посетителей должен уметь материализовать свою деятельность. На помощь ему в этом сегодня приходят трехмерные интерактивные технологии виртуальной реальности. Виртуальные музеи становятся как бы научно-образовательными развлекательными центрами. Анализируя данную тему, можно сделать вывод, что музей продолжает занимать немаловажное место в жизни людей, то есть является актуальной темой в обществе. Он участвует в культурном развитии человека, формирует у него представление о мире, формирует его духовную сущность. В процессе изучения этой предметной области было выявлено, что пользователям и руководству требуется база данных, которая содержала бы подробную информацию об экспонатах, об археологах и о местах нахождения экземпляра. В настоящее время знакомство с коллекциями и изучение их отдельных экспонатов приобретает все большую популярность среди различных социальных групп общества. Музей как социально-культурное учреждение завоевывает все более крепкие позиции в системе культурного просвещения посетителей. Сейчас музей становится объединяющим звеном для совершенно различных по своим направлениям культурных интересов людей. В данном проекте предметной областью является музей, а предметом -непосредственно музейные экспонаты, их реставрация и проведения экскурсии. Концептуальная модель базы данных Сущность - это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. При этом имя сущности - это имя типа, а не некоторого конкретного экземпляра этого типа. Для большей выразительности и лучшего понимания имя сущности может сопровождаться примерами конкретных объектов этого типа. Атрибут сущности - это именованная характеристика, являющаяся некоторым свойством сущности. Связь - это графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Эта ассоциация всегда является бинарной и может существовать между двумя разными сущностями или между сущностью и ей же самой. В любой связи выделяются два конца (в соответствии с существующей парой связываемых сущностей), на каждом из которых указывается имя конца связи, степень конца связи (сколько экземпляров данной сущности связывается), обязательность связи (т.е. любой ли экземпляр данной сущности должен участвовать в данной связи). Связи позволяют по одной сущности находить другие сущности, связанные с нею. Графически связь изображается в виде линии, связывающей две сущности или ведущей от сущности к ней же самой. При этом в месте "стыковки" связи с сущностью используются трехточечный вход в прямоугольник сущности, если для этой сущности в связи могут использоваться много экземпляров сущности, и одноточечный вход, если в связи может участвовать только один экземпляр сущности. Обязательный конец связи изображается сплошной линией, а необязательный - прерывистой линией. Связь типа один-к-одному означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой). Связь типа один-ко-многим означает, что один экземпляр первой сущности (левой) связан с несколькими экземплярами второй сущности (правой). Связь типа много-ко-многим означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. В данном курсовом проекте ER-модель имеет связь типа один-ко-многим. Таблица 1 - Объекты концептуальной модели
Таблица 2 - Связи концептуальной модели
Логическая модель базы данных На данном этапе производится упрощение концептуальной модели, а затем ее преобразование в реляционную модель. В реляционной модели данных (РБД) связь типа "многие ко многим" не может быть представлена напрямую. Она убирается путем добавления новых таблиц. В данной реляционной базе данных все объекты изначально были спроектированы так, что не было избыточных связей и связей "многие ко многим", поэтому в данном случае логическая модель совпадает с концептуальной. Основные объекты базы данных: "Работники" используется для хранения данных о сотрудниках. Данная таблица содержит идентификатор, ФИО и телефон сотрудника. "Залы" содержит данные о залах. Данная таблица содержит идентификатор, название и этаж, на котором находится зал. "Экспонаты" используется для хранения экспонатов. Данная таблица хранит уникальный идентификатор, наименование, место нахождения, ответственного сотрудника, дату поступления. "Экскурсии" используется для хранения данных о экскурсиях. Данная таблица хранит уникальный идентификатор, место проведения, ФИО экскурсовода, дату и количество человек. Физическая модель базы данных Потребности проектировщиков баз данных в более удобных и мощных средствах моделирования предметной области вызвали к жизни направление семантических моделей данных. Притом, что любая развитая семантическая модель данных, как и реляционная модель, включает структурную, манипуляционную и целостную части, главным назначением семантических моделей является обеспечение возможности выражения семантики данных. Семантическая модель - модель предметной области, предназначенная для представления семантики предметной области на самом высоком уровне абстракции. Это означает, что устранена или минимизирована необходимость использовать понятия «низкого уровня», связанные со спецификой физического представления и хранения данных. Наиболее часто на практике семантическое моделирование используется на первой стадии проектирования базы данных. При этом в терминах семантической модели производится концептуальная схема базы данных, которая затем вручную преобразуется к реляционной (или какой-либо другой) схеме. Этот процесс выполняется под управлением методик, в которых достаточно четко оговорены все этапы такого преобразования. Наиболее известным представителем класса семантических моделей является модель «сущность-связь» (ER-модель). Основные преимущества ER-моделей: наглядность; модели позволяют проектировать базы данных с большим количеством объектов и атрибутов; ER-модели реализованы во многих системах автоматизированного проектирования баз данных (например, ERWin). Основные элементы ER-моделей: объекты (сущности); атрибуты объектов; связи между объектами На основе расширенной концептуальной модели создаем БД "Музей" в MS Access. Диаграмма БД выглядит следующим образом (рис. 1): Рисунок 1 - Реляционная модель БД Описание приложения для работы с базой данных Все сущности связаны между собой по ключевым полям и имеют связи один ко многим. База данных приведена к третьей нормальной форме. На этапе проектирования формируется модель данных. Проектировщики в качестве исходной информации получают результаты анализа. Конечным продуктом этапа проектирования являются: - схема базы данных (на основании ER-модели, разработанной на этапе анализа); - набор спецификаций модулей системы (они строятся на базе моделей функций). Таблица - это объект, определяемый и используемый для хранения данных. Каждая таблица включает информацию определённого типа. Таблица содержит поля (столбцы), в которых хранятся данные и записи (строки). В записи собрана вся информация о конкретном объекте. Для каждой таблицы можно определить первичный ключ и один или несколько индексов с целью увеличения скорости доступа к данным. Все таблицы создаются на основе информационной модели, причем каждой сущности будет соответствовать отдельная таблица. Ключевые поля будут соответствовать первичным ключам сущностей. Для таблицы «Сотрудники» создана форма для добавления, изменения и удаления полей таблицы. Также существует подчиненная форма «Экскурсии», которая связана с главной внешним ключом. Рисунок 2 - форма «Сотрудники» Для таблицы «Залы» также создана форма для добавления, изменения и удаления полей таблицы. Рисунок 3 - форма "Залы" В данной курсовой работе представлены как перекрестные запросы, состоящие из нескольких связанных между собой таблиц, так и запросы с параметром и вычисляемыми полями. Запрос «Информация об экспонатах за полгода» содержит в себе перекрестный запрос. Рисунок 4 - Перекрестный запрос «Сотрудник, работающий на этаже» содержит в себе условие на этаж Рисунок 5 - Запрос с параметром база данные музей экспонат Запросы «Количество экспонатов в N зале» содержит в себе вычисляемое поле. Эти запросы созданы для наложения условия на количество экспонатов в каждом зале. Отчет- это гибкое и эффективное средство для организации просмотра и распечатки итоговой информации. В отчете можно получить результаты сложных расчетов, статистических сравнений, а также поместить в него рисунки и диаграммы. Для удобного просмотра данных в базе данных сформированы отчеты на основе таблиц и запросов с помощью мастера отчетов. Отчет «Сотрудники на этаже» построен на основе запроса с параметром. Рисунок 6 - отчет с параметром Отчет «Поступили за последние полугодие» создан мастером на основе запроса. Рисунок 10 - отчет на основе запроса Заключение В ходе выполнения курсовой работы был проведен анализ предметной области, касающийся вопросов учёта и анализа музейных экспонатов. В результате проведенных исследований были выделены объекты данной предметной области, определены характеризующие их атрибуты и установлены структурные связи между ними. В результате была достигнута цель - создание информационной системы музея. Это позволит музею работать более эффективно. При создании базы данных я обеспечил целостность данных таким образом, чтобы при изменении одних объектов автоматически происходило соответствующее изменение связанных с ними объектов. Создаваемые формы, запросы и отчеты позволяют быстро обновлять данные, получать ответы на вопросы, осуществлять поиск нужных данных, анализировать данные. В дальнейшем данная БД может быть усовершенствована. Список литературы Малыхина М.П. Базы данных: основы, проектирование, использование: учебное пособие".-3-е изд. СПб.: БХВ-Петербург, 2007. -528 с. Роберт Уолтерс и др. SQL Server 2012: ускоренный курс для профессионалов./Пер. с англ. - М.: Издательский дом "Вильямс", 2014. -768 с. Александр Волоха. Microsoft SQL Server 2012. Новые возможности. - СПб: Питер, 2012.- 304 с. Сеппа Д. Microsoft ADO.BET/Пер. с англ.- М.; Издательско-торговый дом "Русская редакция", 2003. -640 стр. Нейгел, Кристиан, Ивьен, Билл, Глинн, Джей, Скиннер, Уотсон, Карли. C# 2005 и платформа .NET 3.0 для профессионалов.; Пер. с англ. - М.: ООО "И.Д.Вильямс", 2008.- 1376+416 (на CD) с.: ил. Приложение Скрипты запросов базы данных Поступили за последнее полугодие: SELECT Экспонаты.[Название экспоната], Экспонаты.[Дата поступления], Залы.[Название зала], Сотрудники.[ФИО сотрудника] AS Смотрящий FROM Сотрудники INNER JOIN (Залы INNER JOIN Экспонаты ON Залы.[Номер зала] = Экспонаты.[Номер зала]) ON Сотрудники.[Код сотрудника] = Экспонаты.Смотрящий WHERE (((Экспонаты.[Дата поступления]) Between Date()-180 And Date())) ORDER BY Экспонаты.[Дата поступления]; Сколько экскурсий за сезон: SELECT IIf(Month([Экскурсии]![Дата])=12 Or Month([Экскурсии]![Дата])=1 Or Month([Экскурсии]![Дата])=2,"Зима",IIf(Month([Экскурсии]![Дата])=3 Or Month([Экскурсии]![Дата])=4 Or Month([Экскурсии]![Дата])=5,"Весна",IIf(Month([Экскурсии]![Дата])=6 Or Month([Экскурсии]![Дата])=7 Or Month([Экскурсии]![Дата])=8,"Лето","Осень"))) AS Сезон, Count(Экскурсии.[Код экскурсии]) AS [Кол-во экскурсий] FROM Экскурсии GROUP BY IIf(Month([Экскурсии]![Дата])=12 Or Month([Экскурсии]![Дата])=1 Or Month([Экскурсии]![Дата])=2,"Зима",IIf(Month([Экскурсии]![Дата])=3 Or Month([Экскурсии]![Дата])=4 Or Month([Экскурсии]![Дата])=5,"Весна",IIf(Month([Экскурсии]![Дата])=6 Or Month([Экскурсии]![Дата])=7 Or Month([Экскурсии]![Дата])=8,"Лето","Осень"))) HAVING (((IIf(Month([Экскурсии]![Дата])=12 Or Month([Экскурсии]![Дата])=1 Or Month([Экскурсии]![Дата])=2,"Зима",IIf(Month([Экскурсии]![Дата])=3 Or Month([Экскурсии]![Дата])=4 Or Month([Экскурсии]![Дата])=5,"Весна",IIf(Month([Экскурсии]![Дата])=6 Or Month([Экскурсии]![Дата])=7 Or Month([Экскурсии]![Дата])=8,"Лето","Осень"))))=[Введите сезон])); Поступили после даты: SELECT Залы.[Номер зала], Залы.[Название зала], Count(Экспонаты.[Код экспоната]) AS [Кол-во экспонатов] FROM Залы INNER JOIN Экспонаты ON Залы.[Номер зала] = Экспонаты.[Номер зала] WHERE (((Экспонаты.[Дата поступления])>=[Введите дату, после которой поступили экспонаты])) GROUP BY Залы.[Номер зала], Залы.[Название зала]; Кто работает на этаже: SELECT DISTINCT Залы.Этаж, Залы.[Название зала], Сотрудники.[ФИО сотрудника], Сотрудники.Телефон, Должности.Должность FROM Должности INNER JOIN (Залы INNER JOIN (Сотрудники INNER JOIN Экспонаты ON Сотрудники.[Код сотрудника] = Экспонаты.Смотрящий) ON Залы.[Номер зала] = Экспонаты.[Номер зала]) ON Должности.[Код должности] = Сотрудники.Должность WHERE (((Залы.Этаж)=[Введите этаж])); |