ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 193
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Практическое задание 2Тема2.1. Методы проектирования баз данныхЗаданиеНа основе заданного описания предметной области разработать структуру реляционной базы данных, выполнив следующую последовательность действий:
Задание оформляется в соответствии с бланком выполнения задания и сохраняется в файле «Задание_2_Фамилия.doc» или «Задание_2_Фамилия.docx».Образец выполнения заданияВнимание! Это задание демонстрирует ход рассуждений, которые могут быть проведены при выполнении основного задания, и на проверку преподавателю НЕ предоставляется.Требуется спроектировать базу данных для хранения информации о выполнении ремонтных работ сотрудниками фирмы.Описание предметной областиФирма выполняет ремонт компьютеров. Сотрудники фирмы (исполнители заказов) выполняют определенный набор операций (работ). Стоимость каждого вида работы устанавливается заранее. Каждый исполнитель получает некоторый процент вознаграждения от стоимости выполнения работы. Этот процент устанавливается персонально каждому исполнителю и не зависит от вида выполняемой работы. При оформлении заказа фиксируется дата исполнения работы, вид работы, исполнитель работы. Анализ описания предметной области позволяет выделить минимально необходимый набор данных (атрибутов), которые должны храниться в проектируемой базе данных:
Рис. 2.1. Сущности «ИСПОЛНИТЕЛЬ» и «РАБОТА»Заметим, что атрибут «Дата исполнения» из первоначального набора атрибутов не отнесен ни к одной из сущностей.Определимся с типом связи между сущностями. Один исполнитель может выполнять различные виды работ. Один и тот же вид работы может быть выполнен разными исполнителями. Очевидно, что между сущностями «ИСПОЛНИТЕЛЬ» и «РАБОТА» должна быть установлена связь типа «многие-ко-многим». Для организации такой связи потребуется новая сущность, в которую первичные ключи из «РАБОТА» и «ИСПОЛНИТЕЛЬ» («Код работы» и «Код исполнителя» соответственно) войдут как внешние ключи. Такой сущностью в нашем случае может быть «ЗАКАЗ». В число ее атрибутов войдет также «Дата исполнения» из первоначального набора атрибутов. Определим первичный ключ сущности «ЗАКАЗ», введя новый атрибут «Код заказа». Каждый экземпляр этой сущности будет соответствовать факту оформлении заказа на выполнение какой-либо работы тем или иным исполнителем.Окончательно получим следующее описание сущностей через наборы атрибутов:1. ИСПОЛНИТЕЛЬ (Код исполнителя, Фамилия, Имя, Отчество, Процент вознаграждения)2. РАБОТА (Код работы, Наименование, Стоимость)3. ЗАКАЗ (Код заказа, Код работы, Код исполнителя, Дата исполнения)Установим связи между сущностями посредством совпадающих атрибутов (первичный ключ одной связывается с внешним ключом другой). Тип связи между сущностями «ИСПОЛНИТЕЛЬ» и «ЗАКАЗ» – «один-ко-многим», между сущностями «РАБОТА» и «ЗАКАЗ» – также «один-ко-многим», между сущностями «ИСПОЛНИТЕЛЬ» и «РАБОТА» – «многие-ко-многим». В первой паре для связи используется атрибут «Код исполнителя», во второй – атрибут «Код работы» (рис. 2.2).Рис. 2.2. Связи между сущностями проектируемой базы данныхКаждой сущности поставим в соответствие реляционную таблицу. Получим таблицы «ИСПОЛНИТЕЛИ», «РАБОТЫ» и «ЗАКАЗЫ». Количество и наименования полей (столбцов) в каждой таблице будет совпадать с количеством и наименованием атрибутов соответствующей сущности. Первичные ключи таблиц выделены жирным шрифтом (рис. 2.3). Связи между таблицами будут соответствовать схеме связей между соответствующими сущностями.
Рис. 2.3. Схема данных (структура таблиц и связей между ними) базы данныхТаблица «ИСПОЛНИТЕЛИ» будет хранить записи (строки) вида:
Таблица «РАБОТЫ» будет хранить записи (строки) вида:
Таблица «ЗАКАЗЫ» будет хранить записи (строки) вида:
Определим свойства полей для каждой таблицы. Тип данных в поле выбирается исходя из характера данных, которые предполагается в нем хранить. Будем использовать типы данных, принятые в базах данных Microsoft Access. Необходимо учесть, что поле, являющееся первичным ключом таблицы, не может содержать значений, повторяющихся в двух или более записях таблицы.
Типы данных для полей таблицы «ИСПОЛНИТЕЛИ»:
Типы данных для полей таблицы «РАБОТЫ»:
Типы данных для полей таблицы «ЗАКАЗЫ»:
-
Выполнив анализ описания предметной области и заданного перечня атрибутов, для каждой сущности выбрать набор определяющих ее атрибутов. -
Создать первичные ключи для каждой сущности. -
Представить схему связей между сущностями. -
Перейти к представлению сущностей в виде реляционных таблиц:
-
определить состав полей таблиц базы данных; -
в каждой таблице определить первичный ключ; -
определить тип связей между таблицами; -
определить свойства полей в таблицах.
-
ТОВАР. -
ПРОДАВЕЦ. -
ПРОДАЖА.
-
Наименование (товара). -
Единица измерения (товара). -
Цена закупки (единицы товара). -
Цена продажи (единицы товара). -
Дата продажи. -
Количество (проданных единиц товара). -
ФИО (продавца). -
Процент комиссионных (продавца).
Задание оформляется в соответствии с бланком выполнения задания и сохраняется в файле «Задание_2_Фамилия.doc» или «Задание_2_Фамилия.docx».Образец выполнения заданияВнимание! Это задание демонстрирует ход рассуждений, которые могут быть проведены при выполнении основного задания, и на проверку преподавателю НЕ предоставляется.Требуется спроектировать базу данных для хранения информации о выполнении ремонтных работ сотрудниками фирмы.Описание предметной областиФирма выполняет ремонт компьютеров. Сотрудники фирмы (исполнители заказов) выполняют определенный набор операций (работ). Стоимость каждого вида работы устанавливается заранее. Каждый исполнитель получает некоторый процент вознаграждения от стоимости выполнения работы. Этот процент устанавливается персонально каждому исполнителю и не зависит от вида выполняемой работы. При оформлении заказа фиксируется дата исполнения работы, вид работы, исполнитель работы. Анализ описания предметной области позволяет выделить минимально необходимый набор данных (атрибутов), которые должны храниться в проектируемой базе данных:
-
Наименование (работы). -
Стоимость (работы). -
Дата исполнения (работы). -
Фамилия (исполнителя). -
Имя (исполнителя). -
Отчество (исполнителя). -
Процент вознаграждения (исполнителя).
Рис. 2.1. Сущности «ИСПОЛНИТЕЛЬ» и «РАБОТА»Заметим, что атрибут «Дата исполнения» из первоначального набора атрибутов не отнесен ни к одной из сущностей.Определимся с типом связи между сущностями. Один исполнитель может выполнять различные виды работ. Один и тот же вид работы может быть выполнен разными исполнителями. Очевидно, что между сущностями «ИСПОЛНИТЕЛЬ» и «РАБОТА» должна быть установлена связь типа «многие-ко-многим». Для организации такой связи потребуется новая сущность, в которую первичные ключи из «РАБОТА» и «ИСПОЛНИТЕЛЬ» («Код работы» и «Код исполнителя» соответственно) войдут как внешние ключи. Такой сущностью в нашем случае может быть «ЗАКАЗ». В число ее атрибутов войдет также «Дата исполнения» из первоначального набора атрибутов. Определим первичный ключ сущности «ЗАКАЗ», введя новый атрибут «Код заказа». Каждый экземпляр этой сущности будет соответствовать факту оформлении заказа на выполнение какой-либо работы тем или иным исполнителем.Окончательно получим следующее описание сущностей через наборы атрибутов:1. ИСПОЛНИТЕЛЬ (Код исполнителя, Фамилия, Имя, Отчество, Процент вознаграждения)2. РАБОТА (Код работы, Наименование, Стоимость)3. ЗАКАЗ (Код заказа, Код работы, Код исполнителя, Дата исполнения)Установим связи между сущностями посредством совпадающих атрибутов (первичный ключ одной связывается с внешним ключом другой). Тип связи между сущностями «ИСПОЛНИТЕЛЬ» и «ЗАКАЗ» – «один-ко-многим», между сущностями «РАБОТА» и «ЗАКАЗ» – также «один-ко-многим», между сущностями «ИСПОЛНИТЕЛЬ» и «РАБОТА» – «многие-ко-многим». В первой паре для связи используется атрибут «Код исполнителя», во второй – атрибут «Код работы» (рис. 2.2).Рис. 2.2. Связи между сущностями проектируемой базы данныхКаждой сущности поставим в соответствие реляционную таблицу. Получим таблицы «ИСПОЛНИТЕЛИ», «РАБОТЫ» и «ЗАКАЗЫ». Количество и наименования полей (столбцов) в каждой таблице будет совпадать с количеством и наименованием атрибутов соответствующей сущности. Первичные ключи таблиц выделены жирным шрифтом (рис. 2.3). Связи между таблицами будут соответствовать схеме связей между соответствующими сущностями.
Рис. 2.3. Схема данных (структура таблиц и связей между ними) базы данныхТаблица «ИСПОЛНИТЕЛИ» будет хранить записи (строки) вида:
| Код исполнителя | Фамилия | Имя | Отчество | Процент вознаграждения |
| 1 | Коробов | Илья | Игоревич | 10 |
| 2 | Зотова | Анна | Сергеевна | 15 |
| … | … | … | … | … |
| Код работы | Наименование | Стоимость |
| 1 | Установка видеокарты | 200 |
| 2 | Замена блока питания | 250 |
| … | … | … |
| Код заказа | Код работы | Код исполнителя | Дата исполнения |
| 1 | 1 | 2 | 04.05.2017 |
| 2 | 2 | 4 | 04.05.2017 |
| 3 | 2 | 1 | 05.05.2017 |
| 4 | 3 | 2 | 06.05.2017 |
| … | … | … | … |
Типы данных для полей таблицы «ИСПОЛНИТЕЛИ»:
| Имя поля в таблице | Тип данных |
| Код исполнителя | числовой целый (значения не повторяются) |
| Фамилия | текстовый |
| Имя | текстовый |
| Отчество | текстовый |
| Процент | числовой |
| Имя поля в таблице | Тип данных |
| Код работы | числовой целый (значения не повторяются) |
| Наименование | текстовый |
| Стоимость | денежный |
| Имя поля в таблице | Тип данных |
| Код заказа | числовой целый (значения не повторяются) |
| Код работы | числовой |
| Код исполнителя | числовой |
| Дата исполнения | дата/время |
Бланк выполнения практического задания 2
Представленные в базе данных информационные объекты (сущности):1. ТОВАР (Атрибут 1, Атрибут 2, ...).2. ПРОДАВЕЦ (Атрибут 1, Атрибут 2, ...).3. ПРОДАЖА (Атрибут 1, Атрибут 2, ...).Схема таблиц проектируемой базы данных: ТОВАРЫ | | ПРОДАЖИ | | ПРОДАВЦЫ |
| Код товара | | Код продажи | | Код продавца |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
ТОВАРЫ