Файл: Курсовая работа по дисциплине Базы и хранилища данных Разработка базы данных для предметной области Музей.docx

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 324

Скачиваний: 20

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Таблица 1 - Объекты концептуальной модели













Объект

Атрибуты

Первичный ключ




Работники

Код работника

ФИО

Должность

Телефон

Код работника




Название зала

Код зала

Название

Этаж

Площадь

Код зала




Выставочные экспонаты

Код экспоната

Код зала

Название

Дата поступления

Код сотрудника

Код экспоната




Экскурсии музея

Код экскурсии

Код зала

Код сотрудника

Дата экскурсии

Количество человек

Код экскурсии
















Таблица 2 - Связи концептуальной модели













Объекты

Показатель кардинальности

Степень участия




Выставочные экспонаты

Код зала

1 : N

1 : N

Полная

Полная




Выставочные экспонаты

Код работника

1 : N

1 : N

Полная

Полная




Экскурсии музея

Код сотрудника

1 : N

1 : N

Полная

Полная




Экскурсии музея

Код зала

1 : N

1 : N

Полная

Полная

















Логическая модель базы данных

На данном этапе производится упрощение концептуальной модели, а затем ее преобразование в реляционную модель.

В реляционной модели данных (РБД) связь типа "многие ко многим" не может быть представлена напрямую. Она убирается путем добавления новых таблиц.

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

Основные объекты базы данных:

"Работники" используется для хранения данных о сотрудниках. Данная таблица содержит идентификатор, ФИО и телефон сотрудника.

"Залы" содержит данные о залах. Данная таблица содержит идентификатор, название и этаж, на котором находится зал.

"Экспонаты" используется для хранения экспонатов. Данная таблица хранит уникальный идентификатор, наименование, место нахождения, ответственного сотрудника, дату поступления.

"Экскурсии" используется для хранения данных о экскурсиях. Данная таблица хранит уникальный идентификатор, место проведения, ФИО экскурсовода, дату и количество человек.

Физическая модель базы данных

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

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

Наиболее часто на практике семантическое моделирование используется на первой стадии проектирования базы данных. При этом в терминах семантической модели производится концептуальная схема базы данных, которая затем вручную преобразуется к реляционной (или какой-либо другой) схеме. Этот процесс выполняется под управлением методик, в которых достаточно четко оговорены все этапы такого преобразования.

Наиболее известным представителем класса семантических моделей является модель «сущность-связь» (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 Должности.[Код должности] = Сотрудники.Должность