Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Структурный подход к организации баз данных

..pdf
Скачиваний:
4
Добавлен:
12.11.2023
Размер:
14.79 Mб
Скачать

В. Модифицируем модель с учетом очевидных соображений повышения производитель­ ности.

Г. Упростим имена ключей.

Обратимся к рис. А. 17. ОСОБЫЙ-СЛУЧАЙ, характеризуемый КОДОМ-ПРИЧИНЫ (отношение IX), и СВОДКА-ОСОБЫХ-СЛУЧАЕВ, в которой упоминается КОД-ПРИЧИНЫ

и ДАТА (отношение X),

возникают в результате ОПЕРАЦИИ, которая характеризуется

ВРЕМЕНЕМ и ДАТОЙ

(отношение VIII). Объединив прямоугольники IX и X с прямо­

угольником VIII, мы получим логическую модель, показанную на рис. А. 18.

КАССИР

ОТДЕЛЕНИЕ

Два других варианта логической модели, которые поддерживает система 1М5, приве­ дены на рис. А. 19 и А.20.

Д. Учтем дополнительные требования.

Логические модели, представленные на рис. А. 18—А.20, должны обеспечивать доступ к информации о клиентах по ИМЕНИ-КЛИЕНТА и ДАТЕ-РОЖДЕНИЯ-КЛИЕНТА. Однако первичным ключом сегмента КЛИЕНТ является ИНК. Обеспечение доступа к сегмен­ ту по вторичному ключу, например по ключам ИМЯ-КЛИЕНТА и ДАТА-РОЖДЕНИЯ- КЛИЕНТА, как это требуется при обработке операции ЗАПРОС, достигается за счет вторич­ ного индексирования.

ШАГ II. 1.3. Отображение на сетевую модель данных.

А. Построим обобщенную сетевую модель данных, в которой не учитываются ограни­ чения, накладываемые используемой СУБД.

А.1. Определим взаимосвязи «владелец—член».

После того как удалены прямоугольники ВРЕМЯ и ДАТА, а КОД-ПРИЧИНЫ объеди­

нен с ОПЕРАЦИЕЙ, концептуальная модель, представленная на рис. А. 15, будет выглядеть так, как это показано на рис. А.21. Модель, в которой КОД-ПРИЧИНЫ не объединен с ОПЕРАЦИЕЙ, представлена на рис. А.21 а.

А.2. Устраним множественное владение.

Ни в одном из типов наборов, представленных на рис. А.21, правило уникальности владельца не нарушается.

Б. Трансформируем обобщенную сетевую модель с учетом ограничений, накладывае­ мых используемой СУБД.

Рис. А. 19. Вариант улучшенной логической иерархической модели (рис. А.17)

Системы управления базами данных, поддерживающие модель данных КОДАСИЛ, мо­ гут поддерживать все типы наборов, представленные на рис. А.21. Поэтому изменять модель не требуется.

В. Модифицируем модель исходя из «очевидных» соображений повышения производи­ тельности.

Г. Упростим имена ключей.

Модель, в которой ОСОБЫЙ-СЛУЧАЙ и СВОДКА-ОСОБЫХ-СЛУЧАЕВ объединены в типе записи ОПЕРАЦИЯ, представлена на рис. А.21.

Следует также упростить имена ключей. В модели, представленной на рис. А.21а, ОСОБЫЙ-СЛУЧАЙ и СВОДКА-ОСОБЫХ-СЛУЧАЕВ составляют самостоятельный тип за­ писи, не объединенный с типом записи ОПЕРАЦИЯ.

На рис. А.21 б приведена модель, в которой ОСОБЫЙ-СЛУЧАЙ и СВОДКА-ОСО­ БЫХ-СЛУЧАЕВ являются самостоятельными типами записей.

Д. Дополним модель взаимосвязями, реально существующими, но не отраженными в логической модели.

Желательно, чтобы к сведениям о клиенте можно было обеспечить доступ не только по ИНК, но и по ИМЕНИ-КЛИЕНТА и ДАТЕ-РОЖДЕНИЯ-КЛИЕНТА. Для этого нужно организовать три отсортированных набора, владельцем в которых является ОТДЕЛЕНИЕ, а членом — КЛИЕНТ. Каждый набор должен быть отсортирован по соответствующему ключу (рис. А.216). На рис. А.21 в представлены только два типа записей ОТДЕЛЕНИЕ и КЛИЕНТ, полученные из рис. А.21 б.

КАССИР ОТДЕЛЕНИЕ

Рис. А.21. Вариант логической сетевой модели. Записи ВРЕМЯ и ДАТА объединены с со­ ответствующими записями: ДАТА — с записями ДВИЖЕНИЕ-СУММ (VI), ПРОВЕРКА

(VII) и ОПЕРАЦИЯ (VIII), ВРЕМЯ с записью ОПЕРАЦИЯ (VIII). Записи КОД-ПРИЧИНЫ, СВОДКА-ОСОБЫХ-СЛУЧАЕВ (X) и ОСОБЫЙ-СЛУЧАЙ (IX) объединены с записью ОПЕРАЦИЯ (VIII).

Отметьте различия между связями (стрелками) на этом рисунке и рис. А. 18.

Рис. А.21а. Вариант логической сетевой модели. Записи ВРЕМЯ и ДАТА (рис. А.15) объединены с соответствующими записями. В отличие от варианта на рис. А.21 здесь записи ОСОБЫЙ-СЛУЧАЙ (IX) и СВОДКА-ОСОБЫХ-СЛУЧАЕВ (X) образуют запись ОСОБЫЙ-СЛУЧАЙ, а КОД-ПРИЧИНЫ является отдельной записью.

Ш А Г

III. С П Р О ЕК Т И Р У ЕМ Ф И ЗИ Ч ЕС К У Ю М О Д ЕЛ Ь

БАЗЫ Д А Н Н Ы Х

 

(гл. 7, 8

и 9 )1

 

Ш А Г

Ш .1. Исходя

из логической модели, полученной

на шаге 11.1, представим внут­

реннюю модель (ее называют также физической моделью).

Рассмотрим следующие типы сегментов (записей): ОТДЕЛЕНИЕ, КЛИЕНТ, ССУДА, СЧЕТ, ОПЕРАЦИЯ, КАССИР, ДВИЖЕНИЕ-СУММ и ПРОВЕРКА.

Размеры сегментов. Необходимо определить размер каждого поля и принадлежность

полей сегментам. Размеры полей и сегментов вводятся в словарь данных. При этом предпола­ гается, что в среднем в каждом сегменте хранится до трех указателей, т. е. размер сегмента увеличивается на 12 байт (таблица 3).

Средние числа экземпляров сегментов каждого типа определяются на основе следую­ щих предположений:

1.Имеется 100 отделений.

2.Каждое отделение в среднем обслуживает 1000 клиентов.

3.В каждом отделении в среднем служит 10 кассиров.

4.Каждый клиент в среднем имеет два счета и одну ссуду. Сведения об операциях по ссуде хранятся вместе со сведениями о ссуде.

5.Детальная информация (операции, движение денежных сумм, отчеты о проверке

кассиров) хранятся в базе данных в течение

двух месяцев,

а затем

выводятся в архив.

6.

В течение двух месяцев выполняется

в среднем 100

операций

по каждому счету.

7.

В течение двух месяцев каждый кассир имеет в среднем 50 рабочих дней.

8.

Проверка кассира происходит раз в четыре месяца, т. е. средняя частота проверки

кассира за два месяца составляет 0,5.

Эти предположения объясняют значения среднего числа экземпляров сегментов в раз­ личных вариантах (1—3) физической модели, которые представлены на рис.А.22—А.24.

1 Здесь и в разд. IV при проектировании и оценке физической модели предполагается, что используется система управления базами данных 1М$ фирмы 1ВМ.

КАССИР

ОТДЕЛЕНИЕ

ю

Рис. А.216. Вариант логической сетевой модели. В отличие от варианта на рис. А.21а здесь ОСОБЫЙ-СЛУЧАЙ

и СВОДКА-ОСОБЫХ-СЛУЧАЕВ являются отдельными записями.

^

<

Сп

 

ОТДЕЛЕНИЕ НОМ-ОТДЕЛЕНИЯ

О

Набор Набор Набор ДАТА-РОЖ­ ИНК ИМЯДЕНИЯКЛИЕНТА КЛИЕНТА

ИНК. ИМЯ-

КЛИЕНТА, 'АТА-РОЖДЕ-

-КЛИЕНТА

Т а б л и ц а 3

С е г м е н т

Рис. А.21в. Записи ОТДЕЛЕНИЕ и КЛИЕНТ (рис. А.216) участвуют в трех наборах. Включение в первый набор основано на значении иден­ тификационного номера клиента, во второй — на значении ДАТЫ-РОЖ­ ДЕНИЯ-КЛИЕНТА, в третий — на значении ИМЕНИ-КЛИЕНТА

П о л е

Д л и н а , б а й т

ОТДЕЛЕНИЕ

КЛИЕНТ

ССУДА

СЧЕТ

ОПЕРАЦИЯ

НОМ-ОТДЕЛЕНИЯ

4

НАЗВ-ОТДЕЛЕНИЯ

25

АДРЕС-ОТДЕЛЕНИЯ

55

ИМЯ-УПРАВЛЯЮЩЕГО

25

ИНК

9

ИМЯ-КЛИЕНТА

25

ДАТА-РОЖДЕНИЯ-КЛИЕНТА

6

АДРЕС-КЛИЕНТА

55

ТЕЛЕФОН-КЛИЕНТА

10

 

7ШГ

НОМ-ССУДЫ

17

НАЗНАЧЕНО-ПО-ССУДЕ

12

ТИП-ССУДЫ

2

ПРОЦЕНТ

12

ПОЛУЧЕНО-ПО-ССУДЕ

12

НЕДОПОЛУЧЕНОПО- ССУДЕ

12

 

-щ-

НОМ-СЧЕТА

17

ТИП-СЧЕТА

2

ОСТАТОК

12

 

~ЗГ

СУММА

12

КОД-ДЕЙСТВИЯ

2

НОМ-СТРОКИ-СБЕРКНИЖКИ

15

КОД-ПРИЧИНЫ

2

ДАТА-ОПЕРАЦИИ

6

НОМ-ОПЕРАЦИИ

10

ВРЕМЯ-ОПЕРАЦИИ

4

ТИП-ОПЕРАЦИИ

2

ПРИМЕЧАНИЯ

50

НОМ-ФИЛИАЛА

4

НОМ-КАССИРА

4

 

7ТГ

С е г м е н т

КАССИР

ДВИЖЕНИЕСУММ

ПРОВЕРКА

П о л е

Д л и н а , б а й т

НОМ-КАССИРА

5

ИМЯ-КАССИРА

25

“Ж

 

СУММА-ПО-ПРИНЯТЫМ-

 

ЧЕКАМ-ДРУГИХ-БАНКОВ

12

СУММА-ПО-ПРИНЯТЫМ-

 

ч е к а м -н а ш е г о б а н к а

12

СУММА-ПО-ПРИНЯТЫМ-

 

ЧЕКАМ-ИТОГО

12

ВЫДАНО-НАЛИЧНЫМИ

12

ПРИНЯТО-НАЛИЧНЫМИ

12

ВЫДАНО-ЧЕКОВ-ИТОГО

5

ПРИНЯТО-ЧЕКОВ-ДРУГИХ-БАНКОВ

5

ПРИНЯТО-ЧЕКОВ-НАШЕГО-БАНКА

5

ПРИНЯТО-ЧЕКОВ-ИТОГО

6

НАЛИЧНОСТЬ-НА-НАЧАЛО-ДНЯ

42

НАЛИЧНОСТЬ-НА-КОНЕЦ-ДНЯ

12

ОБЩИЙ-БАЛАНС

12

НОМ-ОТДЕЛЕНИЯ

4

ДАТА

6

ДАТА

"127"

12

ПРИЧИНА-ПРОВЕРКИ

2

НОМ-ОТДЕЛЕНИЯ

4

МАКС-СУММА-ТИП1

12

МАКС-СУММА-ТИП2

12

ЧИСЛО-ОПЕРАЦИЙ-ТИПА 1

7

ЧИСЛО-ОПЕРАЦИЙ-ТИПА2

7

“1ЯГ

 

Изображенные здесь структуры физических баз данных с указанием длины каждого сегмента (Ь) и среднего числа его экземпляров под исходным (Р) соответствуют вариантам логической модели на рис. А. 18—А.20. Подчеркнем различие между моделями, представлен­ ными на рис. А. 19, А.23, и А.20, А.24. Между сегментами СЧЕТ и ОПЕРАЦИЯ введен фиктив­ ный сегмент СЧЕТ-ОПЕРАЦИЯ, физически порожденный сегмента СЧЕТ и физически исход­ ный сегмента ОПЕРАЦИЯ.

При вычислении оценок требуемых объемов памяти и времени доступа воспользуемся значением размера блока, равным 4096 байт (4X1024, т. е. 4К). При этом будем считать, что свободная память внутри каждого блока (Р5\У) и число свободных блоков (Р8 В) состав­ ляют по 10 %.

Вариант физической модели на рис. А.22 содержит две физические базы данных: КАС­ СИР и ОТДЕЛЕНИЕ с тремя логическими взаимосвязями:

1 . КАССИР-ДВИЖЕНИЕ-СУММ — логическая взаимосвязь между сегментами КАС­ СИР и ОТДЕЛЕНИЕ, при этом КАССИР является физически исходным, а ОТДЕЛЕНИЕ — логически исходным.

2.ПРОВЕРКА — логическая взаимосвязь между сегментами КАССИР и ОТДЕЛЕ­ НИЕ, причем КАССИР является физически исходным, а ОТДЕЛЕНИЕ — логически исход­ ным.

3.Физически исходным сегмента ОПЕРАЦИЯ является сегмент СЧЕТ, а логически исходным — КАССИР.

Вариант физической модели, представленный на рис. А.23, содержит три физических базы данных: КАССИР, ОТДЕЛЕНИЕ и КЛИЕНТ с пятью логическими взаимосвязями:

1.КАССИР-ДВИЖЕНИЕ-СУММ — логическая взаимосвязь между сегментами КАС СИР и ОТДЕЛЕНИЕ, при этом КАССИР является физически исходным, а ОТДЕЛЕНИЕ — логически исходным.

КАССИР Р=1000 С* 30+12

КАССИР-

ДВИЖЕНИЕ

СУММ

Рис. А.22. Две физические базы данных системы 1М5: КАССИР и ОТДЕЛЕ­ НИЕ с тремя логическими взаимосвя­ зями

ОТДЕЛЕНИЕ

 

Р=100

НОМ-ОТДЕЛЕ- ^

(У)

1 =100+12

Вторичный

щиндекс по ИМЕНИ-

КЛИЕНТА И ДАТЕ-РОЖДЕНИЯ

- КЛИЕНТА

НОМ-ССУДЫ

Р=1

1=67+12

Е=100

1= 111+12

2.ПРОВЕРКА — логическая взаимосвязь между сегментами КАССИР и ОТДЕЛЕ­ НИЕ, при этом КАССИР является физически исходным, а ОТДЕЛЕНИЕ — логически исход­ ным.

3.СЧЕТ — логическая взаимосвязь между сегментами ОТДЕЛЕНИЕ и КЛИЕНТ, при

этом КЛИЕНТ является физически исходным, а отделение — логически исходным.

4. ССУДА — логическая взаимосвязь между сегментами КЛИЕНТ и ОТДЕЛЕНИЕ, при этом КЛИЕНТ является физически исходным, а ОТДЕЛЕНИЕ — логически исходным.

5. ОПЕРАЦИЯ— логическая взаимосвязь между сегментами СЧЕТ-ОПЕРАЦИЯ и КАССИР, при этом СЧЕТ-ОПЕРАЦИЯ является физически исходным, а КАССИР — логически исходным.

Вариант физической модели, представленной на рис. А.24, содержит три физические базы данных: КАССИР, ОТДЕЛЕНИЕ и КЛИЕНТ с пятью логическими взаимосвязями.

1= 102+12

Е =100

НОМ-КАССИРА^ 1.= 30+12

КАССИР-ДВИЖЕ

 

НИЕ'СУММ

\

ДАТА-ПРОВЕРКИ

ААТА-ЛВИЖЕНИЯ-

Ь маГ

"

 

 

©

©

Г =60

 

ПРОВЕРКА

1 = 127+12

Е=0.5

1=56+12

СЧЕТ-

 

ОПЕРАЦИЯ

 

| ОПЕРАЦИЯ

Вторичный

индекс по ИМЕНИ-КЛИЕНТА

иЛАТЕ-РОЖДЕНИЯ- КЛИЕНТ АКЛИЕНТА

Е =100000

1= 105+12

1 ССУДА

Р=1

1=67+12

Е=100

1= 111+12

Рис. А.23. Три физические базы данных системы 1М5: КАССИР, ОТДЕЛЕНИЕ и КЛИЕНТ с пятью логическими взаимосвязями

Вторичный онт е по

ИМЕНИ-КЛИЕНТА

Рис. А.24. Три физические базы

данных системы 1М5: КАССИР,

ОТДЕЛЕНИЕ

и КЛИЕНТ с пятью логическими

взаимосвязями. Обратите внимание на различия

в иерархических структурах ОТДЕЛЕНИЕ и КЛИЕНТ на этом

рисунке и на

рис. А.23

 

 

1 . КАССИР-ДВИЖЕНИЕ-СУММ — логическая взаимосвязь между сегментами КАС­ СИР и ОТДЕЛЕНИЕ, при этом КАССИР является физически исходным, а ОТДЕЛЕНИЕ — логически исходным.

2. ПРОВЕРКА — логическая взаимосвязь между сегментами КАССИР и ОТДЕЛЕ­ НИЕ, при этом КАССИР является физически исходным, а ОТДЕЛЕНИЕ — логически исход­ ным.

3. СЧЕТ — логическая взаимосвязь между сегментами ОТДЕЛЕНИЕ и КЛИЕНТ, при этом ОТДЕЛЕНИЕ является физически исходным, а КЛИЕНТ — логически исходным.

4. ССУДА — логическая взаимосвязь между сегментами ОТДЕЛЕНИЕ и КЛИЕНТ, при этом ОТДЕЛЕНИЕ является физически исходным, а КЛИЕНТ — логически исходным.

5. ОПЕРАЦИЯ — логическая взаимосвязь между сегментами СЧЕТ-ОПЕРАЦИЯ и КЛИЕНТ, при этом СЧЕТ-ОПЕРАЦИЯ является физически исходным, а КЛИЕНТ — логически исходным.

Теперь необходимо сравнить различные варианты физической реализации базы данных банковской системы, которые представлены на рис. А.22—А.24. Для того чтобы определить, какое представление является наиболее эффективным, оценим размеры баз данных и время обработки важнейших транзакций.

Ш А Г

IV. О Ц ЕН И М Ф И ЗИ Ч ЕС К У Ю М О Д Е Л Ь БА ЗЫ Д А Н Н Ы Х

 

 

 

 

(гл. 7, 8 и 9 и приложение В)

 

 

 

 

Ш А Г

IV. 1 . Оценим требуемые объемы памяти

для внутренней модели, полученной на

 

шаге II1.1. Вычислим вероятности

операций ввода-вывода для этой

модели.

Ш А Г

^ .2 . Представим внешние модели, используемые для получения отчетов и обработки

 

операций (рис. А.1— А .7), исходя из внутренней модели,

полученной

на

шаге

 

III. 1 (упражнение для читателя).

 

 

 

 

Ш А Г

^ .3 . Оценим временные характеристики

внешних моделей,

полученных

на

шаге

^.2 (упражнение для читателя).

ША Г IV .!. Вариант, представленный на рис. А.22.

Оценки требуемых объемов памяти: ВЬК = 4096, Р5В = 0,1, Р5\У = 0,1.

1.

База данных КАССИР.

$

к а с с и р -д в и ж е н и е - с у м м (т- е- размер поддерева) = 139 байт. 5 п р о в е р к а = 68 байт.

$ кассир = 42-|-50Х 139-1-0,5X68 = 7026 байт.

БАЙТЫ В СЕГМЕНТАХ = 7026X 1000.

Неиспользованная память (Ц7) /блок = размер наибольшего сегмента 139 (сегмент КАССИРДВИЖЕНИЕ -СУММ) — 1 = 138 байт.

Полезный размер блока:

Полезный размер блока = [ ( ( 1 — Р5\У)ХВЬК) — \У ]Х (1—Р5В) (байт) =

=[((1—0,1) Х4096) — 138] Х0,9 =

=3193 байт.

БАЙТОВ В БЛОКАХ:

БАЙТОВ В БЛОКАХ= БАЙТОВ В СЕГМЕНТАХх РазмеР ^лока--------

полезный размер блока

4096 =7026000X 3193

=9012996 байт.

2.База данных ОТДЕЛЕНИЕ.

^ операция — 123 байт.

5 счет = 43x100+123=12343 байт.

*$ссуда = 79 байт.

^ клиент = 117 + (2x12343) + 79 = 24882 байт.

^ отделение =

121 + 1000x24882 = 24882121 байт.

БАЙТЫ В СЕГМЕНТАХ = 24882121 X 100 байт.

Неиспользованная

память (ДУ)/блок = размер наибольшего сегмента 123 (сегмент

ОПЕРАЦИЯ) - 1

122

байт.

Полезный размер блока = (0,9x4096—122) X0,9 = 3207,9 байт. БАЙТОВ В БЛОКАХ:

БАЙТОВ В БЛОКАХ =2488212100X3^^- = 3177068100 байт.

Вероятности операций ввода-вывода (вариант на рис. А.22).

1. База данных КАССИР.

РС Ю КАССИР, КАССИР-ДВИЖЕНИЕ-СУММ ~

(1, длина КАССИР-ДВИЖЕНИЕ-СУММ + все поддеревья слева

=ГТ11П

от КАССИР-ДВИЖЕНИЕ-СУММ 3193

= шш ( 1,3 3 3 3 ) = 0,0435.

РС Ю КАССИР, ПРОВЕРКА

гпш (

68 + 50x139

 

 

1 .

3193

 

 

РТЮ кассир-дви ж ен и е -сумм — т 1п

 

139

 

 

(1» дгрдз) —0,0435.

 

РТЮпроверка = т *п (1*

 

) =0,0213.

 

 

 

п п т

 

 

139+25Х 139 ч

,

'“ 'К А С С И Р - Д В И Ж Е Н И Е - С У М М ,

К А С С И Р “ П И П

( 1 ,

--------- 3 1 9 3 ---------------

/

=

ПП1Л

,,

68x0,025x68x50x139

ч

,

Р Р Ю проверка, кассир = т т

(1 ,— ------- з Т э з ---------------------------) =

1-

2. База данных ОТДЕЛЕНИЕ.

Р С Ю отдеЛение, клиент = т т (1,

= 0 ,0 3 6 5 .

24 882

РТ10КЛиЕнт = т 1п

(1

3208 } ” *1

 

 

 

 

РРЮкЛИЕНТ, О Т Д Е Л Е Н И Е =ГП1П

117+ 500Х24 882

 

3208

} “

 

 

 

Р С Ю клиент, с ч е т =

ПТ1П (1 , 0208 ^= 0,0134.

 

280

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