- •Введение.
- •1. Цель и задачи курсового проекта.
- •2. Порядок выполнения курсового проекта.
- •3. Исследование информационных потребностей пользователей базы данных.
- •4.1. Построение модели “сущность-связь” на основе алгоритма т. Тиори, Дж. Фрай.
- •1. Шифр материала
- •4.2 Построение модели “Сущность-связь” на основе интуиции.
- •5. Даталогическое проектирование базы данных.
- •5.1. Характеристика программных средств субд.
- •5.2. Анализ инфологической схемы.
- •5.3. Логическое описание базы данных в среде субд.
- •5.4. Загрузка базы данных.
- •5.5. Разработка сервиса пользователей.
- •5.6. Реализация запросов пользователей в среде субд.
4.1. Построение модели “сущность-связь” на основе алгоритма т. Тиори, Дж. Фрай.
Дано: 1) Список запросов:
определить количество поступивших на склад материалов;
определить количество отпущенных со склада материалов;
определить сумму остатка материалов на складе;
определить потребность в материалах.
2) Список реквизитов:
шифр материала;
наименование материала;
единица измерения;
количество принятых материалов;
количество отпущенного материала;
код поставщика;
код потребителя;
цена за единицу;
код склада;
наименование изделия;
код изделия;
норма расхода материала на единицу изделия;
объем производства изделий.
Требуется получить на выходе:
список уникальных сущностей;
список неуникальных сущностей;
список атрибутов уникальных сущностей;
список атрибутов неуникальных сущностей.
На основании полученных сведений проектировщик баз данных должен дать графический вариант проекта структуры предметной области в виде модели “сущность-связь”.
а)
Уникальная сущность
АТРИБУТЫ
АТРИБУТЫ
Неуникальная сущность
Уникальная сущность
АТРИБУТЫ
б) спецификация схемы:
Список сущностей (имена уникальных, имена неуникальных сущностей).
Имя сущности, идентифицирующий атрибут, (описательные атрибуты).
Спецификация связи между сущностями: имя сущности — > имя сущности, тип (1:1, 1:М, М:N, M:1), обязательная, необязательная, возможная, условная (нужное подчеркнуть).
Спецификация атрибутов: имя атрибута, алфавитно-цифровой, цифровой, логический, число символов.
Спецификация связей “атрибут-атрибут”: имя атрибута — > атрибут
1:М
1:1, M:1, M:N.
Шаг 1.
Подготовка данных.
Таблица 14
Взаимосвязи между запросами и реквизитами.
Номер запроса |
Номер реквизита |
1 |
1,2,3,4,6,9 |
2 |
1,2,3,5,7,9 |
3 |
1,2,3,4,5,8,9 |
4 |
1,2,10,11,12,13 |
Шаг 2.
Построение векторов использования задач.
Ш
1 1
2 1
3 1
4 1
5 0
6 1
7 0
8 0
9 1
10 0
11 0
12 0
13 0
Рис. 2(а)
(всего используемых реквизитов — 13)
ВХОД: первая строка табл. 14
ВЫХОД: рис. 2(а)
Заполнение значениями вектора 2(а) состоит в том, что соблюда-
етя следующее условие: ставится единица (если элемент исполь-
зуется в запросе), в противном случае ставится 0.
Шаг 2.2. Определение значений вектора для первого и второго
запросов.
ВХОД: рис. 2(а)
ВЫХОД: рис. 2(б)
Заполнение значениями вектора 2(б) происходит при соблюдении
с
1 2
2 2
3 2
4 1
5 1
6 1
7 1
8 0
9 2
10 0
11 0
12 0
13 0
Рис. 2(б)
если элемент используется для первого и второго запросов, то ставится 2, если только для первого
запроса, то остается значение, которое было на рисунке 2(а), если только для второго запроса, то ставится 1, если ни в одном, то 0.
Ш
1 3
2 3
3 3
4 2
5 2
6 1
7 1
8 1
9 3
10 0
11 0
12 0
13 0
Рис. 2(в)
ВХОД: рис. 2(б)
ВЫХОД: рис 2(в).
Алгоритм аналогичен шагу 2.2 .
Ш
1 4
2 4
3 3
4 2
5 2
6 1
7 1
8 1
9 3
10 1
11 1
12 1
13 1
Рис. 2(г)
ВХОД: рис 2(в)
ВЫХОД: рис 2(г)
Алгоритм аналогичен шагу 2.2
Шаг 3.
Построение матрицы связей.
Шаг 3.1. Определение размера матрицы.
ВХОД: количество элементов
ВЫХОД: 13*13
Шаг 3.2. Определение матрицы связей для первого запроса.
ВХОД: шаг 1, табл. 14
ВЫХОД: матрица связи — рис. 3.2
Заполнение матрицы происходит следующим образом: берем первый элемент (1) первого запроса, совместно используем (2, 3, 4, 6, 9), на пересечении его с этими элементами ставим единицу, с другими — ноль; берем второй элемент (его код — 2), он связан с элементами 1, 3, 4, 6, 9, на пересечении с этими элементами ставим единицу, с другими — ноль. Такую операцию проделываем для всех элементов превого запроса.
-
1
2
3
4
5
6
7
8
9
10
11
12
13
1
0
1
1
1
0
1
0
0
1
0
0
0
0
2
1
0
1
1
0
1
0
0
1
0
0
0
0
3
1
1
0
1
0
1
0
0
1
0
0
0
0
4
1
1
1
0
0
1
0
0
1
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
6
1
1
1
1
0
0
0
0
1
0
0
0
0
7
0
0
0
0
0
0
0
0
0
0
0
0
0
8
0
0
0
0
0
0
0
0
0
0
0
0
0
9
1
1
1
1
0
1
0
0
0
0
0
0
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
11
0
0
0
0
0
0
0
0
0
0
0
0
0
12
0
0
0
0
0
0
0
0
0
0
0
0
0
13
0
0
0
0
0
0
0
0
0
0
0
0
0
Рис. 3.2.
Шаг 3.3.
ВХОД: Рис. 3.2, табл. 14 (2-я строка).
ВЫХОД: Рис. 3.3
Заполнение матрицы идет по следующему алгоритму: берем первый элемент второго запроса — это 1, он связан с элементами 2, 3, 5, 7, 9. Рассматриваем первую строку матрицы рис. 2(а). Если элемент (например 1) связан с элементом 2 для первого и второго запросов, то на пересечении ставим “два”, т.е. увеличиваем значение первой строки матрицы 3.2 на единицу; если существует связь только для второго запроса, то ставим “единицу”; если не используется ни для первого, ни для второго запросов — ставим “ноль”.
-
1
2
3
4
5
6
7
8
9
10
11
12
13
1
0
2
2
1
1
1
1
0
2
0
0
0
0
2
2
0
2
1
1
1
1
0
2
0
0
0
0
3
2
2
0
1
1
1
1
0
2
0
0
0
0
4
1
1
1
0
0
1
0
0
1
0
0
0
0
Рис. 3.3
51
1
1
0
0
0
1
0
1
0
0
0
0
6
1
1
1
1
0
0
0
0
1
0
0
0
0
7
1
1
1
0
1
0
0
0
1
0
0
0
0
8
0
0
0
0
0
0
0
0
0
0
0
0
0
9
2
2
2
1
1
1
1
0
0
0
0
0
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
11
0
0
0
0
0
0
0
0
0
0
0
0
0
12
0
0
0
0
0
0
0
0
0
0
0
0
0
13
0
0
0
0
0
0
0
0
0
0
0
0
0
Шаг 3.4
ВХОД: рис. 3.3, табл.14 (3-я строка)
ВЫХОД: рис. 3.4
Алгоритм тот же, что и для шага 3.3.
-
1
2
3
4
5
6
7
8
9
10
11
12
13
1
0
3
3
2
2
1
1
1
3
0
0
0
0
2
3
0
3
2
2
1
1
1
3
0
0
0
0
3
3
3
0
2
2
1
1
1
3
0
0
0
0
4
2
2
2
0
1
1
0
1
2
0
0
0
0
Рис 3.4
52
2
2
1
0
0
1
1
2
0
0
0
0
6
1
1
1
1
0
0
0
0
1
0
0
0
0
7
1
1
1
0
1
0
0
0
1
0
0
0
0
8
1
1
1
1
1
0
0
0
1
0
0
0
0
9
3
3
3
2
2
1
1
1
0
0
0
0
0
10
0
0
0
0
0
0
0
0
0
0
0
0
0
11
0
0
0
0
0
0
0
0
0
0
0
0
0
12
0
0
0
0
0
0
0
0
0
0
0
0
0
13
0
0
0
0
0
0
0
0
0
0
0
0
0
Шаг 3.5.
ВХОД: рис. 3.4, табл. 14 (4-я строка)
ВЫХОД: рис 3.5
Алгоритм тот же, что и для шага 3.3.
-
1
2
3
4
5
6
7
8
9
10
11
12
13
1
0
4
3
2
2
1
1
1
3
1
1
1
1
2
4
0
3
2
2
1
1
1
3
1
1
1
1
3
3
3
0
2
2
1
1
1
3
0
0
0
0
4
2
2
2
0
1
0
0
1
2
0
0
0
0
5
2
2
2
1
0
1
1
1
2
0
0
0
0
Рис. 3.5
61
1
1
1
0
0
0
0
1
0
0
0
0
7
1
1
1
0
1
0
0
0
1
0
0
0
0
8
1
1
1
1
1
0
0
0
1
0
0
0
0
9
3
3
3
2
2
1
1
1
0
0
0
0
0
10
1
1
0
0
0
0
0
0
0
1
0
0
0
11
1
1
0
0
0
0
0
0
0
1
0
1
1
12
1
1
0
0
0
0
0
0
0
1
1
0
1
13
1
1
0
0
0
0
0
0
0
1
1
1
0
Шаг 3.6 Построение вектора полного числа связей.
В
12
12
8
7
7
5
5
6
8
6
5
5
5
Рис. 3.6
ВЫХОД: рис. 3.6
Алгоритм: подсчитываем число элементов со значениями больше ноля.
Шаг 4.
Преобразование матрицы.
ВХОД: рис. 3.5 и вектор использования задач — рис. 2(г)
ВЫХОД: рис 4
Алгоритм состоит в следующем: все значения первой строки матрицы рис. 3.5 делим на первое значение вектора — рис. 2(г), т.е. 0:4, 4:4, 3:4, и т.д. и умножаем на 100%, затем значения второй строки — на второе значение и т.д.
-
1
2
3
4
5
6
7
8
9
10
11
12
13
1
0
100
75
50
50
25
25
25
75
25
25
25
25
2
100
0
75
50
50
25
25
25
100
25
25
25
25
3
10
100
0
66
66
33
33
33
100
0
0
0
0
4
100
100
100
0
50
50
0
50
100
0
0
0
0
5
100
100
100
50
0
0
50
50
100
0
0
0
0
6
100
100
100
100
0
0
0
0
100
0
0
0
0
7
100
100
100
0
100
0
0
0
100
0
0
0
0
8
100
100
100
100
100
0
0
0
100
0
0
0
0
9
10
11
12
13
Рис. 4
Шаг 5. Построение вектора учета использования.
ВХОД: матрица рис. 4, граничный параметр равен 70% (значение берет проектировщик на основании анализа рис. 4)
ВЫХОД: рис. 5
А
3
3
3
4
4
5
5
6
3
5
5
5
5
Рис. 5
Шаг 6. Построение вектора коэффициента использования.
В
25
25
37
57
57
100
100
100
37
100
100
100
100
Рис. 6
ВЫХОД: рис. 6
Алгоритм: делим значение вектора рис. 5 на соответствующие значения вектора 3.6 (3:12, 3:12, 3:8 и т.д.) и умножаем на 100%.
Шаг 7. Построение гистограммы использования данных в запросах.
ВХОД: рис. 2(г)
ВЫХОД: рис. 7
Алгоритм: по строке подсчитываем интервалы использования в задачах по рис. 2(г) — 1, 2, 3, 4; по столбцу подсчитываем количество элементов, попадающих в отмеченные интервалы (в интервал 1 — 7 элементов, в интервал 2 — 2 элемента, в интервал 3 — 2 элемента, в интервале 4 — 2 элемента). Самое большое число элементов — 7.
7
6
5
4
Рис. 7
3
2
1
0
1
2
3
4
Шаг 8. Построение гтстограммы совуместного использования данных с другими элементами.
ВХОД: рис. 3.6
ВЫХОД: рис. 8
7
6
5
4
Рис. 8
3
2
1
0
1
2
3
4
5
7
9
11
6
8
10
12
Алгоритм: по строке — интервалы использования с другими элементами — это 5, 6, 7, 8, 12; по столбцу — число элементов (для интервала 5 — 6 элементов, для 7 — 2, для 8 — 2, для 12 — 2).
Шаг 9. Построение гистограммы коэффициента использования.
ВХОД: рис. 6
ВЫХОД: рис. 9
7
6
5
4
Рис. 9
3
2
1
0
0-10 11-20 21-30 31-40
41-50 51-60 61-70 71-80 81-90 91-100
Алгоритм: по строке — интервалы коэффициентов использования рис. 6 (1-10%, 11-20%, 21-30%, 31-40%, и т.д.); по столбцу — число элементов, попадающих в этот интервал (21-30% — 2 элемента, 31-40% — 2 элемента, 51-60% — 2 элемента, 91-100% — 7 элементов), откладываем по вертикали 7 элементов.
Шаг 10. Формирование матрицы критериев классификации элементов данных.
ВХОД: рис. 7, 8, 9; 3.6; 5.6
ВЫХОД: рис 10
|
Использование в задачах |
Использование с другими элементами данных |
Коэффициент использования |
Сущность |
>=4 |
>=12 |
<=40 |
Атрибут неуникальной сущности |
>=2,<4 |
>6,<12 |
>40%,<60% |
Атрибут уникальной сущности |
<2 |
<=6 |
>=60% |
Рис.10
Шаг 11. Классификация сущностей и атрибутов.
ВХОД: рис. 10; 2(г); 3.6; табл.2 — список реквизитов
ВЫХОД: рис. 11
Код элементов данных |
Использование в задачах |
Использование с другими задачами |
Коэффициент использования |
Элементы данных |
Классификация |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
4 |
12 |
25 |
шифр материала |
сущность |
2 |
4 |
12 |
25 |
наименование материала |
сущность |
3 |
3 |
8 |
37 |
единица измерения |
атрибут неуникаль-ности |
4 |
2 |
7 |
57 |
количество принятых материалов |
атрибут неуникаль-ности |
5 |
2 |
7 |
57 |
количество отпущенных материалов |
атрибут неуникаль-ности |
6 |
1 |
5 |
100 |
код поставщика |
атрибут уникальной сущности |
7 |
1 |
5 |
100 |
код потребителя |
атрибут уникальной сущности |
8 |
1 |
6 |
100 |
цена за единицу |
атрибут уникальной сущности |
9 |
3 |
5 |
100 |
код склада |
атрибут неуникальной сущности |
10 |
1 |
5 |
100 |
наименование изделия |
атрибут уникальной сущности |
11 |
1 |
5 |
100 |
код изделия |
атрибут уникальной сущности |
12 |
1 |
5 |
100 |
норма расхода материала |
атрибут уникальной сущности |
13 |
1 |
5 |
100 |
объем производства изделия |
атрибут уникальной сущности |
Рис. 11
Шаг 12. Анализ выделенных элементов данных — кандидатов на сущность.
ВХОД: рис. 11 Определение уникальной и неуникальной
сущностей
ВЫХОД: рис. 12
Код элементов |
Наименование элемента данных |
Объект, явление, которое описывает элемент данных |
1 |
НАИМЕНОВАНИЕ МАТЕРИАЛА |
МАТЕРИАЛ |
6 |
КОД ПОСТАВЩИКА |
ПОСТАВЩИК |
7 |
КОД ПОТРЕБИТЕЛЯ |
ПОТРЕБИТЕЛЬ |
9 |
КОД СКЛАДА |
СКЛАД |
11 |
КОД ИЗДЕЛИЯ |
ИЗДЕЛИЕ |
Рис. 12
Шаг 15. определение списка уникальных и неуникальных сущностей.
ВХОД: рис. 11 Определение уникальной и неуникальной сущностей.
ВЫХОД: рис. 15
Уникальная сущность |
Неуникальная сущность |
МАТЕРИАЛ |
МАТЕРИАЛ, СКЛАД |
ПОСТАВЩИК |
МАТЕРИАЛ, ИЗДЕЛИЕ |
ПОТРЕБИТЕЛЬ |
|
СКЛАД |
|
ИЗДЕЛИЕ |
|
Рис.15
Алгоритм:
при выборе пользуемся следующими правилами:
Если комбинация сущностей появляется наиболее часто (в нашем случае это комбинация 1, 9, частота = 3).
Учет специфики (смысловых связей) предметной области.
Сущности, которые не могут существовать самостоятельно (если не существуют определяющие их сущности), претендуют на неуникальные.
Для идентификации набора элементарных данных используются две или более уникальные сущности (норма расхода материаланаизделие).
Шаг 16. Идентификация связей между сущностями.
ВХОД: рис. 15; совокупность таблиц проекта структуры предметной области на содержательном уровне
ВЫХОД: рис. 16
Сущность — владелец связи |
Сущность — член связи |
Идентификация неуникальной сущности — члена связи |
Характеристика связи |
МАТЕРИАЛ, СКЛАД |
|
МАТЕРИАЛЬНЫЙ ЗАПАС |
|
МАТЕРИАЛ |
ПОСТАВЩИК |
|
|
МАТЕРИАЛ |
ПОТРЕБИТЕЛЬ |
|
|
МАТЕРИАЛ, ИЗДЕЛИЕ |
|
ИЗГОТОВЛЕНИЕ |
|
СКЛАД |
ИЗДЕЛИЕ |
|
|
Рис. 16
Алгоритм:
Правило 1 касается двух сущностей: “Материал” и “Склад”. Это — неуникальная сущность (см. рис. 16). Присваиваем ей имя: “Материальный запас”.
Правило 2 касается двух сущностей: “Материал” и “Поставщик”. Оно устанавливает для данной предметной области: один материал поставляется одним поставщиком, т.е связь 1:1. Здесь на роль “сущность — владелец связи” претендуют одинаково и тот , и другой элемент связи; принимаем решение, что “Материал” определяет “Поставщика”.
Такие же рассуждения проводятся проектировщиком на основе связей, которые определены и зафиксированы между реквизитами на этапе описания и анализа предметной области.
Шаг 17. Формирование списка атрибутов.
ВХОД: рис. 11, 15
ВЫХОД: рис. 17
Атрибуты уникальной сущности |
Атрибуты неуникальной сущности |
Шифр материала |
Единица измерения |
Наименование материала |
|
Код поставщика |
Количество принятого материала |
Код потребителя |
|
Цена за единицу |
Количество отпущенного материала |
Код склада |
Норма расхода материала |
Наименование изделия |
|
Объем производства изделия |
|
Рис. 17
Шаг 18. Формирование списка связей данных.
ВХОД: список реквизитов (табл. 2), рис. 4
ВЫХОД: рис. 18
Исходные данные |
С какими данными используется |
Частота использования,% |
1.Шифр материала |
2. Наименование материала. 3. Единица измерения. 4. Количество принятого материала. 5. Количество отпущенного материала. 6. Код поставщика. 7. Код потребителя. 8. Цена за единицу. 9. Код склада. 10. Наименование изделия. 11. Код изделия. 12. Норма расхода материала. 13. Объем производства изделий |
100 75
50
50 25 25 25 75 25 25 25 25 |
2. Наименование материала |
1. Шифр материала. 3. Единица измерения. 4. Количество принятого материала. 5. Количество отпущенного материала. 6. Код поставщика. 7. Код потребителя. 8. Цена за единицу. 9. Код склада. 10. Наименование изделия. 11. Код изделия. 12. Норма расхода материала. 13. Объем производства изделий |
100 75
50
50 25 25 25 75 25 25 25 25 |
3. Единица измерения |
1. Шифр материала. 2. Наименование материала. 4. Количество принятого материала. 5. Количество отпущенного материала. 6. Код поставщика. 7. Код потребителя. 8. Цена за единицу. 9. Код склада.
|
100 100
66
66 33 33 33 100 |
Рис. 18
Шаг 19. Формирование списка атрибутов, относящихся к уникальным сущностям.
ВХОД: рис. 15, 18.
ВЫХОД: рис. 19.
Алгоритм:
Выбирается первый атрибут на рис. 17 — “Шифр материала”, смотрим рис. 18, он соотносится (связан) не только с сущностью “Материал”, но и с другими (поставщик, потребитель, склад, изделие), поэтому сравниваем частоту совместного появления атрибута с каждой из сущностей и исключаем наименьшие. При этом учитываем смысловое содержание каждого атрибута. Вывод: к сущности “Материал” относятся: “Шифр материала” (100%), “Наименование материала” (100%), “Единица измерения” (75%), по смыслу отнесли такой атрибут, как “Цена за единицу”.
Правило: если атрибут используется только с одной сущностью, то он относится только к этой сущности.
Если после исключения из рассмотрения сущностей с низкой частотой совместного использования с рассматриваемым атрибутом вопрос: какая сущность владеет атрибутом неясен, то необходимо вернуться к описанию предметной области на содержательном уровне и выявить сущность для этих атрибутов.
Наименование уникальной сущности |
Атрибуты, относящиеся к неуникальной сущности |
МАТЕРИАЛ |
Шифр материала Наименование материала Цена за единицу |
ПОСТАВЩИК ПОТРЕБИТЕЛЬ СКЛАД |
Код поставщика Код потребителя Код склада |
ИЗДЕЛИЕ |
Наименование изделия Код изделия Объем производства изделий |
Рис. 19
Шаг 20.
ВХОД: рис. 11, 16, 17, 18.
ВЫХОД: рис. 20.
Алгоритм тот же, что и на шаге 19.
Наименование неуникальной сущности |
Атрибуты, относящиеся к неникальным сущностям |
Материальный запас (материал, склад) |
Единица измерения Количество принятого материала Количество отпущенного материала |
Изготовление (материал, изделие) |
Норма расхода материала |
Рис. 20
Шаг 21. Идентификация связей между сущностями и атрибутами (выбор первичного ключа).
Алгоритм: на основе рассуждений и анализа задач, связанных с атрибутами сущностей, формируем связи между атрибутами.
ВХОД: рис. 19, 20
ВЫХОД: рис 21
Форма документирования связей атрибутов