Файл: Курсовая работа по дисциплине Базы и хранилища данных Разработка базы данных для предметной области Музей.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 Должности.[Код должности] = Сотрудники.Должность