МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ РАДИОЭЛЕКТРОНИКИ
Кафедра ИУС
Контрольная работа
По дисциплине: «Система управления распределенными базами данных»
На тему: «Определение размера объекта в БД»
Выполнила: Проверил:
ст. группы ИУСТ-03-2 доц. каф. ИУС
Ставинская Н.М. Панферова И.Ю.
Харьков 2006
Структура БД
Рисунок 1 – ER-диаграмма
Рассмотрим таблицы: Bank, Client, Schet, Doc, Operatcii.
Выполнение вычислений.
Размер блока 2Кб = 2048 байт.
1. Вычитаем из размера блока его заголовок.
2048-90=1958 байт.
2. Вычисляем резервируемое пространство в блоке под возможные изменения.
pctfree = 10%
1958*0,1=196 байт
3. Вычисляем оставшееся пространство в блоке
1958 – 196 = 1762 байт
4.
4.1 Определяем среднюю длину строки в таблице Bank
SQLWKS> select avg(nvl(vsize(Id_Bank),0))+avg(nvl(vsize(Name),0))+avg(nvl(vsize(Adres),0))+avg(nvl(vsize(Telefon),0)) +avg(nvl(vsize(Kodbank),0)) +avg(nvl(vsize(N_licens),0)) +avg(nvl(vsize(N_otdelen),0)) as AVG_LENGTH_ROW
2> from Bank
3>
AVG_LENGTH
----------
63
1 row selected.
4.2 Определяем среднюю длину строки в таблице Client
SQLWKS> select avg(nvl(vsize(Id_Client),0))+avg(nvl(vsize(Name),0))+avg(nvl(vsize(Adres),0))+avg(nvl(vsize(N_pasp),0)) +avg(nvl(vsize(Ident_kod),0)) +avg(nvl(vsize(Dop_info),0)) +avg(nvl(vsize(N_kartu),0)) +avg(nvl(vsize(Telefon),0)) +avg(nvl(vsize(Kly_slovo),0)) as AVG_LENGTH_ROW
2> from Client
3>
AVG_LENGTH
----------
131
1 row selected.
4.3 Определяем среднюю длину строки в таблице Schet
SQLWKS> select avg(nvl(vsize(Id_Schet),0))+avg(nvl(vsize(Mfo),0))+avg(nvl(vsize(Korsh),0))+avg(nvl(vsize(Date_otkr),0)) +avg(nvl(vsize(Id_Bank),0)) +avg(nvl(vsize(Id_Client),0)) +avg(nvl(vsize(Id_Karta),0)) as AVG_LENGTH_ROW
2> from Schet
3>
AVG_LENGTH
----------
38
1 row selected.
4.4 Определяем среднюю длину строки в таблице Doc
SQLWKS> select avg(nvl(vsize(Id_Doc),0))+avg(nvl(vsize(Name),0))+avg(nvl(vsize(Prim),0)) as AVG_LENGTH_ROW
2> from Doc
3>
AVG_LENGTH
----------
30
1 row selected.
4.5 Определяем среднюю длину строки в таблице Operatcii
SQLWKS> select avg(nvl(vsize(Id_Oper),0))+avg(nvl(vsize(Name),0))+avg(nvl(vsize(Naznachenie),0))+avg(nvl(vsize(N_oper),0)) +avg(nvl(vsize(Kod_poluch),0)) +avg(nvl(vsize(Kod_otprav),0)) +avg(nvl(vsize(Id_Doc),0)) +avg(nvl(vsize(Id_Schet),0)) as AVG_LENGTH_ROW
2> from Operatcii
3>
AVG_LENGTH
----------
62
1 row selected.
5. Пространство занимаемое строкой из таблицы
в таблице Bank: 63+8+3+0=74
в таблице Client: 131+9+3+0=143
в таблице Schet: 38+7+3+0=48
в таблице Doc: 30+3+3+0=36
в таблице Operatcii: 62+8+3+0=73
6. Число строк в блоке
для таблицы Bank: 1762/74=23
для таблицы Client: 1762/143=12
для таблицы Schet:1762/48=36
для таблицы Doc: 1762/36=48
для таблицы Operatcii: 1762/62=28
7. Определяем сколько будет строк в таблице.
для таблицы Bank: 50
для таблицы Client: 10000
для таблицы Schet:11000
для таблицы Doc: 100
для таблицы Operatcii: 11000
8. Определяем количество блоков
для таблицы Bank: 50/23=3
для таблицы Client: 10000/12=834
для таблицы Schet:11000/36=306
для таблицы Doc: 100/48=3
для таблицы Operatcii: 11000/28=393
9. Определяем занимаемое место (Кбайт).
1 блок = 2 Кбайта
для таблицы Bank: 3*2=6
для таблицы Client: 834*2=1668
для таблицы Schet: 306*2=612
для таблицы Doc: 3*2=6
для таблицы Operatcii: 393*2=786
Расчет для индексов
1. Вычитаем из размера блока его заголовок.
2048-161=1887 байт.
2. Вычисляем резервируемое пространство в блоке под возможные изменения.
pctfree = 10%
1887*0,1=189 байт
3. Вычисляем оставшееся пространство в блоке
1887 – 189 = 1698 байт
4. Определяем средние длины строк:
4.1 Определяем среднюю длину строки в таблице Bank
SQLWKS> select avg(nvl(vsize(Id_Bank),0)) as AVG_LENGTH_ROW
2> from Bank
3>
AVG_LENGTH
----------
6
1 row selected.
4.2 Определяем среднюю длину строки в таблице Client
SQLWKS> select avg(nvl(vsize(Id_Client),0))
2> as AVG_LENGTH_ROW
3> from Client
4>
AVG_LENGTH
----------
8
1 row selected.
4.3 Определяем среднюю длину строки в таблице Schet
SQLWKS> select avg(nvl(vsize(Id_Schet),0))
2> as AVG_LENGTH_ROW
3> from Schet
4>
AVG_LENGTH
----------
8
1 row selected.
4.4 Определяем среднюю длину строки в таблице Doc
SQLWKS> select avg(nvl(vsize(Id_Doc),0))
2> as AVG_LENGTH_ROW
3> from Doc
4>
AVG_LENGTH
----------
4
1 row selected.
4.5 Определяем среднюю длину строки в таблице Operatcii
SQLWKS> select avg(nvl(vsize(Id_Oper),0))
2> as AVG_LENGTH_ROW
3> from Operatcii
4>
AVG_LENGTH
----------
5
1 row selected.
5. Пространство, занимаемое строкой из таблицы
в таблице Bank: 6+1+3+0=10
в таблице Client: 8+1+3+0=12
в таблице Schet: 8+1+3+0=12
в таблице Doc: 4+1+3+0=8
в таблице Operatcii: 5+1+3+0=9
6. Число строк в блоке
для таблицы Bank: 1698/10=169
для таблицы Client: 1698/12=141
для таблицы Schet: 1698/12=141
для таблицы Doc: 1698/8=212
для таблицы Operatcii: 1698/9=188
7. Определяем сколько будет строк в таблице.
для таблицы Bank: 50
для таблицы Client: 10000
для таблицы Schet:11000
для таблицы Doc: 100
для таблицы Operatcii: 11000
8. Определяем количество блоков
для таблицы Bank: 50/169=1
для таблицы Client: 10000/141=71
для таблицы Schet:11000/141=79
для таблицы Doc: 100/212=1
для таблицы Operatcii: 11000/188=59
9. Определяем занимаемое место (Кбайт).
1 блок = 2 Кбайта
для таблицы Bank: 1*2=2
для таблицы Client: 71*2=142
для таблицы Schet: 79*2=158
для таблицы Doc: 1*2=2
для таблицы Operatcii: 59*2=118
Выводы: зная количество строк в таблицах, можно посчитать количество используемых блоков и весь объём дискового пространства, занимаемый данными, хранящимися в таблицах и созданных индексах. Это позволяет планировать размеры базы данных и способы её хранения на дисковых носителях
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.