Методичка БД V.3.0 light (docx)
.pdf4.ПРИМЕР ВЫПОЛНЕНИЯ КОНТРОЛЬНОГО ЗАДАНИЯ (ЛАБОРАТОРНОЙ РАБОТЫ)
ПО ПРОЕКТИРОВАНИЮ И СОЗДАНИЮ БАЗЫ ДАННЫХ
Приведем пример выполнения контрольного задания по проектированию и созданию базы данных.
Необходимо создать базу данных для учета производства продукции в фарфоровом цехе. Каждый вид продукции относится к определенной товарной группе. Для каждого вида продукции указывается единица измерения и нормативная трудоемкость (в часах на единицу продукции). Продукция производится бригадами, состоящими из рабочих. В разное время один и тот же рабочий может работать в разных бригадах. Каждому рабочему в соответствии с его квалификацией присваивается определенный разряд, причем с течением времени разряды у рабочих могут меняться. Каждому разряду соответствует тарифный коэффициент. По прошествии определенного времени бригадой заполняется отчет о произведенной за это время продукции.
База данных должна позволять определять, сколько продукции каждого вида было произведено каждой бригадой в натуральном выражении и в оценке по нормативной трудоемкости (выработка определяется как произведение количества произведенной продукции на нормативную трудоемкость).
Итак, цель создания базы данных, ее основные функции и информация, которая должна содержаться в базе, четко озвучены в задании, что позволяет перейти к проектированию предметной области.
Выделим типы объектов, составляющих предметную область: товарная группа, вид продукции, бригада, рабочий, разряд, отчет, позиция отчета, назначение в бригаду, присвоение разряда.
Заполним матрицу отношений типов объектов (таблица 4.1). Представленный в таблице 4.1 вариант матрицы отношений яв-
ляется окончательным, т.е. в ней представлены только прямые зависимости типа “один ко многим”. Знаки “+”, соответствующие косвенным зависимостям, которые могли присутствовать в промежуточном варианте матрицы отношений, были удалены.
В контрольной работе могут быть представлены оба варианта матрицы отношений: исходный (с косвенными зависимостями) и окончательный (без косвенных зависимостей)
Построим согласно матрице отношений схему структуры предметной области и представим ее на рисунке 4.1.
19
Таблица 4.1 - Матрица отношений типов объектов предметной области “Учет производства продукции”
Тип объектов
Тип объектов
Разряд
Рабочий
Бригада Товарная группа Вид продукции
Присвоение разряда Назначение в бригаду Отчет Позиция отчета
Уровень
Разряд |
Рабочий |
Бригада |
Товарная группа |
Вид продукции |
Присвоение разряда |
Назначение в бригаду |
Отчет |
Позиция отчета |
|
|
|
|
|
|
+ |
|
|
|
V |
|
|
|
|
|
+ |
+ |
|
|
V |
|
|
|
|
+ |
|
+ |
+ |
|
V |
|
|
|
|
|
|
|
+ |
V |
|
|
|
|
|
|
|
|
|
V |
|
|
|
|
|
|
|
|
|
|
V |
|
|
|
|
|
|
|
|
|
V |
|
|
|
|
|
|
|
|
+ |
V |
|
|
|
|
|
|
|
|
|
V |
I |
I |
I |
I |
II |
II |
II |
II |
III |
|
|
Разряд |
|
Рабочий |
|
Бригада |
|
Товарная |
|||||||
|
|
|
|
группа |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Присвоение |
|
Назначение |
|
Отчет |
|
|
Вид |
|||
разряда |
|
в бригаду |
|
|
|
продукции |
||||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Позиция
отчета
Рисунок 2.1 - Схема структуры предметной области “Учет производства продукции”
20
Выше на схеме изображены родительские типы объектов, ниже – дочерние.
Все отношения между типами объектов, представленные на рисунке 4.1 на схеме структуры предметной области, имеют вид “один ко многим”. Одной товарной группе соответствуют многие виды продукции. Одной бригадой составляется много отчетов. Один отчет может включать много позиций. Один и тот же вид пр о- дукции может быть произведен множество раз.
Отношение между типами объектов “Рабочий” и “Бригада” имеет вид “многие ко многим”, т.к. один и тот же рабочий может в разное время работать в разных бригадах, а одна бригада состоит из многих рабочих. Отношение между типами объектов “Рабочий” и “Бригада” является существенным и должно быть отображено на схеме структуры предметной области. Чтобы сделать это, в структуре предметной области выделяется еще один тип объектов – “Назначение в бригаду” и отношение типа “многие ко многим” между типами объектов “Рабочий” и “Бригада” отображается при помощи двух отношений типа “один ко многим”, а именно: отношения между типами объектов “Рабочий” и “Назначение…”, а также отношения между типами объектов “Бригада” и “Назначение…”.
Аналогично отображается существенная связь типа “многие ко многим” между типами объектов “Разряд” и “Рабочий”. “Разряд” связывается с “Присвоением…” и “Рабочий” связывается с “Присвоением”, причем каждая из этих связей имеет вид “один ко многим”.
Определим набор таблиц базы данных. Каждому объекту предметной области будет соответствовать линейная таблица, т.е. база данных будет состоять из девяти таблиц: Разряды, Рабочие, Бригады, ТоварныеГруппы, ВидыПродукции, Отчеты, Назначения, Присвоение, ПозицииОтчетов. Обратите внимание: в именах таблиц отсутствуют пробелы между словами. СУБД (в частности MS Access) могут позволять использовать пробелы в именах, однако делать это нежелательно с точки зрения последующего использования имен в формулах и выражениях.
Составим словарь имен. Результаты этого шага проектирования базы данных представим в таблице 4.2.
Обратите внимание: слова в словаре имен отсортированы по алфавиту, благодаря чему нужное слово и соответствующее ему сокращение находятся быстрее.
21
Таблица 4.2 - Словарь имен базы данных “Учет производства продукции”
Слово |
Сокращение |
|
Слово |
Сокращение |
Бригада |
Бриг |
|
Отчет |
Отч |
Вид |
Вид |
|
По порядку |
ПП |
Время |
Врем |
|
Позиция |
Поз |
Группа |
Гр |
|
Присвоение |
Пр |
Дата |
Дата |
|
Продукция |
Прод |
Единица |
Ед |
|
Рабочий |
Раб |
Измерение |
Изм |
|
Разряд |
Разр |
Имя |
Имя |
|
Табельный |
Таб |
Количество |
Кол |
|
Фамилия |
Фам |
Коэффициент |
Коэф |
|
|
|
Назначение |
Назн |
|
|
|
Наименование |
Наим |
|
|
|
Номер |
Ном |
|
|
|
Норма |
Норм |
|
|
|
Отчество |
Отч |
|
|
|
Определим состав, типы и размеры полей для каждой из таблиц базы данных. При назначении полям системных имен обратимся к сокращениям, принятым в словаре имен. Состав, типы полей, их системные имена и размеры приведены в таблице 4.3.
Жирным шрифтом в каждой из таблиц выделены ключевые поля. Поля, по которым будут установлены связи между двумя таблицами, должны присутствовать в каждой из этих таблиц. В родительских таблицах эти поля являются ключевыми, в дочерних (как правило) – обычными. Это позволяет установить между соответствующими таблицами связи типа один ко многим. Чтобы можно было связать родительскую таблицу с дочерней, в дочернюю таблицу обязательно необходимо поместить ключевое поле из родитель-
ской.
При формировании системных имен с использованием сокращений из словаря между частями системного имени не ставится пробел. Возможен такой вариант формирования системных имен, при котором части системного имени разделены знаком подчеркивания. В этом случае имена полей таблицы “ВидыПродукции” выглядели бы следующим образом: Код_Вид, Ном_Гр, Наим_Вид, Ед_Изм, Норм_Врем.
22
Таблица 4.3 - Состав полей таблиц базы данных “Учет производства продукции”
Название |
Подпись поля |
Системное |
Тип |
Размер |
|
таблицы |
имя |
поля |
|||
|
|
||||
Разряды |
Номер разряда |
НомРазр |
Т |
2 |
|
|
Коэффициент |
РазрКоэф |
Ч |
одинарн. |
|
Рабочие |
Табельный номер |
ТабНом |
Т |
5 |
|
|
Фамилия |
ФамРаб |
Т |
25 |
|
|
Имя |
ИмяРаб |
Т |
25 |
|
|
Отчество |
ОтчРаб |
Т |
25 |
|
|
Адрес |
АдрРаб |
Т |
50 |
|
Бригады |
Номер бригады |
НомБриг |
Т |
2 |
|
|
Наименование бригады |
НаимБриг |
Т |
20 |
|
Товарные |
Номер группы |
НомГр |
Т |
2 |
|
Группы |
Наименование группы |
НаимГр |
Т |
25 |
|
Виды |
Код продукции |
НомВид |
Т |
4 |
|
Продукции |
Номер тов. группы |
НомГр |
Т |
2 |
|
|
Наименование продукции |
НаимВид |
Т |
50 |
|
|
Ед. изм. |
ЕдИзм |
Т |
5 |
|
|
Норма времени |
НормВрем |
Ч |
одинарн. |
|
Отчеты |
Номер отчета |
НомОтч |
Т |
7 |
|
|
Номер бригады |
НомБриг |
Т |
2 |
|
|
Дата отчета |
ДатаОтч |
Д |
|
|
Назначения |
Номер назначения |
НомНазн |
Т |
7 |
|
|
Номер бригады |
НомБриг |
Т |
2 |
|
|
Табельный номер |
ТабНом |
Т |
5 |
|
|
Дата назначения |
ДатаНазн |
Д |
|
|
|
Дата отмены назначения |
ДатаОтм |
Д |
|
|
Присвоение |
Код присвоения разряда |
КодПр |
Т |
6 |
|
|
Табельный номер |
ТабНом |
Т |
5 |
|
|
Номер разряда |
НомРазр |
Т |
2 |
|
|
Дата присвоения |
ДатаПр |
Д |
|
|
Позиции |
Номер отчета |
НомОтч |
Т |
7 |
|
Отчетов |
№ п/п |
НомПП |
Т |
2 |
|
|
Код продукции |
НомВид |
Т |
4 |
|
|
Количество |
КолПрод |
Ч |
одинарн. |
Создадим каждую из таблиц базы данных “Учет производства продукции” в СУБД Microsoft Access в режиме конструктора.
23
В таблицах необходимо задать для полей подписи, организовать контроль правильности вводимых значений.
Подписи необходимы пользователям для работы с базой данных. Если разработчики базы работают с системными именами, которые пользователям знать не обязательно, то подписи понятны и тем, и другим.
Контроль вводимых значений необходим преимущественно для числовых полей, чтобы, например, нельзя было ввести в поле с количеством или стоимостью отрицательные значения и т.п.
После того как создание структуры таблиц будет завершено, следует установить связи между ними. Для этого необходимо добавить все таблицы базы на схему данных и установить связи путем перетаскивания поля из одной таблицы в это же поле в другой таблице. При установлении связей программой предлагается обеспечить целостность данных, каскадное обновление и каскадное удаление. Рекомендуется включить опции обеспечения целостности и каскадного обновления.
На рисунке 4.2 представлена схема данных базы “Учет производства продукции”.
Далее создаются поля со списками. Поля со списками позволяют облегчить пользователю базы процесс ввода данных. Поля со списками имеет смысл создать для тех полей, рядом с которыми на схеме данных стоит символ бесконечности, соответствующий части “ко многим” отношения “один ко многим”.
Следующий шаг – создание форм. Создадим для каждой из таблиц при помощи мастера форм по одной форме “в один столбец” и по одной ленточной форме. Возможно создание форм с наличием подчиненных. Такие формы могут быть созданы на основе двух или более таблиц, связанных между собой.
Для обеспечения более удобного ввода и просмотра данных создадим ряд форм с наличием подчиненных: Рабочие / Назначения, Присвоение; Бригады / Отчеты; Отчеты / ПозицииОтчетов. На рисунке 4.3 в качестве примера представлена первая из перечисленных форм с наличием подчиненных.
По завершении разработки форм необходимо заполнить таблицы. Обеспечение целостности данных требует, чтобы сначала заполнялись родительские таблицы, затем дочерние.
В таблицах 4.4 – 4.12 представлены исходные данные базы “Учет производства продукции”.
24
25
Рисунок 4.2 – Схема данных базы “Учет производства продукции”
Рисунок 4.3. - Форма с наличием подчиненных Рабочие / Назначения, Присвоение для одновременного заполнения и просмотра данных таблиц “Рабочие”, “Назначения” и “Присвоение”
Таблица 4.4 - |
Таблица 4.5 - |
Таблица 4.6 - |
||||||
Таблица |
|
Таблица |
Таблица |
|
||||
"Разряды” |
|
“ТоварныеГруппы” |
"Бригады” |
|||||
|
|
|
|
|
|
|
|
|
Номер |
|
Коэф- |
|
Номер |
Наименование |
|
Номер |
Наименование |
разряда |
фициент |
|
группы |
группы |
|
бригады |
бригады |
|
01 |
|
1,00 |
|
01 |
Посуда |
|
01 |
Бригада № 1 |
02 |
|
1,10 |
|
02 |
Вазы |
|
02 |
Бригада № 2 |
03 |
|
1,20 |
|
03 |
Сувениры |
|
03 |
Бригада № 3 |
04 |
|
1,30 |
|
|
|
|
04 |
Бригада № 4 |
05 |
|
1,40 |
|
|
|
|
|
|
06 |
|
1,50 |
|
|
|
|
|
|
07 |
|
1,60 |
|
|
|
|
|
|
08 |
|
1,75 |
|
|
|
|
|
|
09 |
|
1,90 |
|
|
|
|
|
|
10 |
|
2,00 |
|
|
|
|
|
|
26
Таблица 4.7 - Таблица “Рабочие”
|
Таб. |
Фамилия |
|
Имя |
Отчество |
|
Адрес |
|
||
|
номер |
|
|
|
||||||
00001 |
Васечкин |
|
Анатолий |
Дмитриевич |
Ленина, 55-120 |
|
||||
00002 |
Смирнов |
|
Савелий |
Васильевич |
Карла Маркса, 12-56 |
|||||
00003 |
Александров |
|
Сергей |
Петрович |
Сиреневый, 12-225 |
|||||
00004 |
Новиков |
|
Григорий |
Емельянович |
Труда, 23-20 |
|
||||
00005 |
Пореч |
|
Галина |
Александровна |
Ленина, 60-120 |
|
||||
00006 |
Черкизов |
|
Алексей |
Борисович |
Куйбышева, 25-63 |
|||||
00007 |
Репина |
|
Наталья |
Львовна |
Комсомольская, 30-65 |
|||||
00008 |
Мурзабаева |
|
Гульнара |
Забитовна |
Байкальская, 20-78 |
|||||
00009 |
Колесова |
|
Елена |
Викторовна |
Урюпинская, 23-54 |
|||||
00010 |
Степанов |
|
Алексей |
Константинович |
Красногвардейцев, 1-10 |
|||||
Таблица 4.8 - Таблица “ВидыПродукции” |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
Код |
Номер |
|
|
|
Ед. |
|
Норма |
||
|
товарной |
Наименование продукции |
|
|||||||
продукции |
изм. |
|
времени |
|||||||
группы |
|
|
|
|
||||||
0001 |
|
01 |
|
Чайная пара "Золотая осень" |
шт |
|
1 |
|||
0002 |
|
01 |
|
Кофейный сервиз "Аврора" |
|
набор |
|
12 |
||
0003 |
|
01 |
|
Чайная чашка "Космос" |
|
шт |
|
1 |
||
0004 |
|
01 |
|
Чайный сервиз "Амбер" |
|
набор |
|
30 |
||
0005 |
|
01 |
|
Чайная пара "Шотландка" |
|
шт |
|
1,5 |
||
0006 |
|
02 |
|
Ваза "Пингвин" |
|
шт |
|
3 |
||
0007 |
|
02 |
|
Ваза "Хризантема" |
|
шт |
|
2,5 |
||
0008 |
|
02 |
|
Ваза "Карнегия" |
|
шт |
|
6 |
||
0009 |
|
03 |
|
Статуэтка "Медведь" |
|
шт |
|
0,5 |
||
0010 |
|
03 |
|
Статуэтка "Пингвин" |
|
шт |
|
2 |
Таблица 4.9 –
Таблица "Присвоение”
Код при- |
Таб. |
№ |
Дата при- |
своения |
номер |
разр. |
своения |
000001 |
00001 |
03 |
02.05.04 |
000002 |
00002 |
04 |
02.05.04 |
000003 |
00003 |
04 |
02.05.04 |
000004 |
00004 |
04 |
31.05.04 |
000005 |
00001 |
04 |
31.05.04 |
000006 |
00002 |
05 |
31.05.04 |
000007 |
00005 |
02 |
01.06.04 |
Код при- |
Таб. |
№ |
Дата при- |
своения |
номер |
разр. |
своения |
000008 |
00006 |
03 |
01.06.04 |
000009 |
00007 |
05 |
01.07.04 |
000011 |
00008 |
03 |
01.07.04 |
000012 |
00005 |
03 |
01.07.04 |
000013 |
00009 |
04 |
05.07.04 |
000014 |
00010 |
03 |
05.07.04 |
|
|
|
|
27
Таблица 4.10 - Таблица “Отчеты”
Номер |
Номер |
Дата |
отчета |
бригады |
отчета |
001 |
01 |
05.05.04 |
002 |
01 |
10.05.04 |
003 |
01 |
15.05.04 |
004 |
01 |
20.05.04 |
005 |
01 |
25.05.04 |
006 |
01 |
31.05.04 |
Номер |
Номер |
Дата |
отчета |
бригады |
отчета |
007 |
01 |
10.06.04 |
008 |
02 |
10.06.04 |
009 |
01 |
20.06.04 |
010 |
02 |
20.06.04 |
011 |
01 |
30.06.04 |
012 |
02 |
30.06.04 |
Таблица 4.11 - Таблица "ПозицииОтчетов"
|
№ |
№ |
|
Код |
Кол- |
|
№ |
№ |
Код |
Кол- |
|
№ |
№ |
Код |
Кол- |
||||
отч. |
п/п |
прод. |
во |
|
отч. |
п/п |
прод. |
во |
|
отч. |
п/п |
прод. |
во |
||||||
001 |
1 |
0001 |
10 |
|
004 |
2 |
0001 |
10 |
|
008 |
|
1 |
0009 |
50 |
|||||
001 |
2 |
0003 |
5 |
|
004 |
3 |
0007 |
100 |
|
008 |
|
2 |
0010 |
50 |
|||||
001 |
3 |
0006 |
1 |
|
004 |
4 |
0004 |
1 |
|
008 |
|
3 |
0008 |
40 |
|||||
002 |
1 |
0004 |
3 |
|
005 |
1 |
0005 |
5 |
|
009 |
|
1 |
0003 |
150 |
|||||
002 |
2 |
0002 |
2 |
|
005 |
2 |
0007 |
10 |
|
009 |
|
2 |
0004 |
10 |
|||||
002 |
3 |
0008 |
5 |
|
005 |
3 |
0002 |
3 |
|
009 |
|
3 |
0003 |
25 |
|||||
003 |
1 |
0004 |
2 |
|
005 |
4 |
0006 |
5 |
|
010 |
|
1 |
0009 |
20 |
|||||
003 |
2 |
0005 |
15 |
|
006 |
1 |
0007 |
15 |
|
010 |
|
2 |
0002 |
30 |
|||||
003 |
3 |
0002 |
1 |
|
006 |
2 |
0004 |
2 |
|
010 |
|
3 |
0003 |
30 |
|||||
003 |
4 |
0006 |
2 |
|
007 |
1 |
0002 |
10 |
|
011 |
|
1 |
0002 |
15 |
|||||
003 |
5 |
0003 |
10 |
|
007 |
2 |
0007 |
25 |
|
011 |
|
2 |
0004 |
7 |
|||||
003 |
6 |
0001 |
5 |
|
007 |
3 |
0005 |
25 |
|
012 |
|
1 |
0001 |
100 |
|||||
004 |
1 |
0003 |
10 |
|
007 |
4 |
0001 |
20 |
|
012 |
|
2 |
0004 |
10 |
|||||
Таблица 4.12 - Таблица "Назначения" |
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
№ |
|
№ |
Таб. |
|
|
Дата |
|
Дата |
|
|
|
|
|
|
|||
|
|
|
|
|
|
отмены |
|
|
|
|
|
||||||||
|
назначен. |
бриг. |
номер |
назначения |
|
|
|
|
|
|
|||||||||
|
|
назначения |
|
|
|
|
|
||||||||||||
|
0000001 |
|
01 |
00001 |
|
02.05.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000002 |
|
01 |
00002 |
|
02.05.04 |
|
05.07.04 |
|
|
|
|
|
||||||
|
0000003 |
|
01 |
00003 |
|
02.05.04 |
|
30.07.04 |
|
|
|
|
|
||||||
|
0000004 |
|
02 |
00004 |
|
31.05.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000005 |
|
02 |
00005 |
|
01.06.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000006 |
|
02 |
00006 |
|
01.06.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000007 |
|
03 |
00007 |
|
01.07.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000008 |
|
04 |
00008 |
|
01.07.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000009 |
|
04 |
00009 |
|
05.07.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000010 |
|
04 |
00010 |
|
05.07.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000011 |
|
03 |
00003 |
|
05.07.04 |
|
|
|
|
|
|
|
|
|
||||
|
0000012 |
|
03 |
00002 |
|
05.07.04 |
|
|
|
|
|
|
|
|
|
28