Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа / bd / базы данных2222.rtf
Скачиваний:
241
Добавлен:
17.02.2014
Размер:
19.41 Mб
Скачать

Последовательные файлы

В СУБД INGRES размер страницы составляет 2048 байт, из которых 40 байт занимает заголовок страницы, а оставшихся 2008 байт предназначены для размещения сохраняемых в базе данных. Общий объем памяти, необходимый для размещения последовательного файла, вычисляется по следующей формуле:

Rows_ per_page = 2008/(row width + 2}

Результат округляется до ближайшего меньшего целого.

total_heap_pages = num_rows/rows_per_page

Результат округляется до ближайшего большего целого.

Значение row_width здесь представляет длину записи таблицы. Например, определим размер файла последовательного типа для таблицы Property_for_Rent, состоящей из 10000 строк:

rows_per_page = 2008/(111 + 2) = 17

total_heap_pages = 10000/17 = 589

Следовательно, в СУБД INGRES для размещения таблицы Property_for_Rent (Недвижимость_в_аренду), сохраняемой в формате последовательного файла, потребуется 589 страниц. Если размер дискового блока в системе составляет 512 байт, то для размещения таблицы Poperty_for_Rent (Недвижимость_в_аренду) потребуется 589*2048/512=2356 дисковых блоков.

Хешированные файлы

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

как и для последовательного файла. Однако полученное число страниц дополнительно должно быть пересчитано с учетом фактора заполнения, который представляет

собой процентное выражение той части страницы, которая может быть использована для размещения данных, прежде чем страница будет считаться заполненной. В СУБД INGRES принимаемый по умолчанию фактор заполнения равен 50%, если длина записи не превышает 1000 байт. В противном случае фактор заполнения принимается равным 100%. Используемые формулы имеют следующий вид:

rows_per_page = (fillfactor*2008)/{row_width + 2)

Результат округляется до ближайшего меньшего целого.

total_hash_pages = num_rows/rows_per_page*(1/fillfactor)

Результат округляется до ближайшего большего целого.

Например, определим размер таблицы Property_for_Rent с 10000 записей, сохраняемой в формате хешированного файла. Фактор заполнения примем равным 50.

rows_per_page= 0.5*2008/(111 + 2) = 8

total_hash_pages = (10000/8)*2= 2500

Следовательно, при использовании формата хешированного файла для размещения таблицы Property_for_Rent (Недвижимость_в_аренду) в СУБД INGRES потребуется 2500 страниц, причем фактор заполнения принимается равным 50%. Если размер дискового блока в системе составляет 512 байт, то для размещения таблицы Property_for_Rent (Недвижимость_в_аренду) потребуется 2500*2048/512=10000 дисковых блоков.

7.4. Разработка механизмов защиты

База данных представляет собой один из важнейших корпоративных ресурсов, поэтому защита этого ресурса является чрезвычайно важной задачей. В каждом случае должны существовать конкретные требования к защите, которые уже были отмечены нами в документации на этапе логического проектирования. Назначение данного этапа состоит в выборе способа реализации каждого из установленных требований. Любая конкретная СУБД предлагает собственный набор средств защиты, отличный от других СУБД. И в этом случае проектировщик базы данных должен иметь полное и ясное представление обо всех функциях защиты, предлагаемых целевой СУБД. Ограничимся пока обсуждением следующих аспектов этой проблемы:

1. Разработка пользовательских представлений (видов).

2. Определение прав доступа.

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