Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Methodicals / Cwmet.doc
Скачиваний:
39
Добавлен:
19.04.2013
Размер:
444.93 Кб
Скачать

4.1. Построение модели “сущность-связь” на основе алгоритма т. Тиори, Дж. Фрай.

Дано: 1) Список запросов:

определить количество поступивших на склад материалов;

определить количество отпущенных со склада материалов;

определить сумму остатка материалов на складе;

определить потребность в материалах.

2) Список реквизитов:

  1. шифр материала;

  2. наименование материала;

  3. единица измерения;

  4. количество принятых материалов;

  5. количество отпущенного материала;

  6. код поставщика;

  7. код потребителя;

  8. цена за единицу;

  9. код склада;

  10. наименование изделия;

  11. код изделия;

  12. норма расхода материала на единицу изделия;

  13. объем производства изделий.

Требуется получить на выходе:

список уникальных сущностей;

список неуникальных сущностей;

список атрибутов уникальных сущностей;

список атрибутов неуникальных сущностей.

На основании полученных сведений проектировщик баз данных должен дать графический вариант проекта структуры предметной области в виде модели “сущность-связь”.

а)

Уникальная сущность

АТРИБУТЫ

АТРИБУТЫ

Неуникальная сущность

Уникальная сущность

АТРИБУТЫ

б) спецификация схемы:

  1. Список сущностей (имена уникальных, имена неуникальных сущностей).

  2. Имя сущности, идентифицирующий атрибут, (описательные атрибуты).

  3. Спецификация связи между сущностями: имя сущности — > имя сущности, тип (1:1, 1:М, М:N, M:1), обязательная, необязательная, возможная, условная (нужное подчеркнуть).

  4. Спецификация атрибутов: имя атрибута, алфавитно-цифровой, цифровой, логический, число символов.

  5. Спецификация связей “атрибут-атрибут”: имя атрибута — > атрибут

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(а)

аг 2.1. Определяем значение вектора для первого запроса

(всего используемых реквизитов — 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.3.

ВХОД: рис. 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.4.

ВХОД: рис 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

5

1

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

5

2

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

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

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.5

ВЫХОД: рис. 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

лгоритм: подсчитываем в каждой строке матрицы рис. 4 число элементов, значение которых превышает 70% (для первой строки это будет 3, т.к. элементы 2, 3, 9 имеют частое использование. Если число связей невелико или слишком велико, то значение параметра можно уменьшить.

Шаг 6. Построение вектора коэффициента использования.

В

25

25

37

57

57

100

100

100

37

100

100

100

100

Рис. 6

ХОД: рис. 5, рис. 3.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. Если комбинация сущностей появляется наиболее часто (в нашем случае это комбинация 1, 9, частота = 3).

  2. Учет специфики (смысловых связей) предметной области.

  3. Сущности, которые не могут существовать самостоятельно (если не существуют определяющие их сущности), претендуют на неуникальные.

  4. Для идентификации набора элементарных данных используются две или более уникальные сущности (норма расхода материаланаизделие).

Шаг 16. Идентификация связей между сущностями.

ВХОД: рис. 15; совокупность таблиц проекта структуры предметной области на содержательном уровне

ВЫХОД: рис. 16

Сущность — владелец связи

Сущность — член связи

Идентификация неуникальной сущности — члена связи

Характеристика связи

МАТЕРИАЛ, СКЛАД

МАТЕРИАЛЬНЫЙ ЗАПАС

МАТЕРИАЛ

ПОСТАВЩИК

МАТЕРИАЛ

ПОТРЕБИТЕЛЬ

МАТЕРИАЛ, ИЗДЕЛИЕ

ИЗГОТОВЛЕНИЕ

СКЛАД

ИЗДЕЛИЕ

Рис. 16

Алгоритм:

  1. Правило 1 касается двух сущностей: “Материал” и “Склад”. Это — неуникальная сущность (см. рис. 16). Присваиваем ей имя: “Материальный запас”.

  2. Правило 2 касается двух сущностей: “Материал” и “Поставщик”. Оно устанавливает для данной предметной области: один материал поставляется одним поставщиком, т.е связь 1:1. Здесь на роль “сущность — владелец связи” претендуют одинаково и тот , и другой элемент связи; принимаем решение, что “Материал” определяет “Поставщика”.

  3. Такие же рассуждения проводятся проектировщиком на основе связей, которые определены и зафиксированы между реквизитами на этапе описания и анализа предметной области.

Шаг 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.

Алгоритм:

  1. Выбирается первый атрибут на рис. 17 — “Шифр материала”, смотрим рис. 18, он соотносится (связан) не только с сущностью “Материал”, но и с другими (поставщик, потребитель, склад, изделие), поэтому сравниваем частоту совместного появления атрибута с каждой из сущностей и исключаем наименьшие. При этом учитываем смысловое содержание каждого атрибута. Вывод: к сущности “Материал” относятся: “Шифр материала” (100%), “Наименование материала” (100%), “Единица измерения” (75%), по смыслу отнесли такой атрибут, как “Цена за единицу”.

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

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

Наименование уникальной сущности

Атрибуты, относящиеся к неуникальной сущности

МАТЕРИАЛ

Шифр материала

Наименование материала

Цена за единицу

ПОСТАВЩИК ПОТРЕБИТЕЛЬ СКЛАД

Код поставщика

Код потребителя

Код склада

ИЗДЕЛИЕ

Наименование изделия

Код изделия

Объем производства изделий

Рис. 19

Шаг 20.

ВХОД: рис. 11, 16, 17, 18.

ВЫХОД: рис. 20.

Алгоритм тот же, что и на шаге 19.

Наименование неуникальной сущности

Атрибуты, относящиеся к неникальным сущностям

Материальный запас

(материал, склад)

Единица измерения

Количество принятого материала

Количество отпущенного материала

Изготовление

(материал, изделие)

Норма расхода материала

Рис. 20

Шаг 21. Идентификация связей между сущностями и атрибутами (выбор первичного ключа).

Алгоритм: на основе рассуждений и анализа задач, связанных с атрибутами сущностей, формируем связи между атрибутами.

ВХОД: рис. 19, 20

ВЫХОД: рис 21

Форма документирования связей атрибутов

Соседние файлы в папке Methodicals