Физические модели данных

Содержание

Слайд 2

Формирование имени файла Размещение (Location) Размещение (Location) Размещение (Location) Шевченко А.

Формирование имени файла

Размещение
(Location)

Размещение
(Location)

Размещение
(Location)

Шевченко А. В.

Элементы физической модели

Таблица

Файл

Раздел
(Partition)

Раздел
(Partition)

Раздел
(Partition)

Страницы
(Pages)

127

0000007F

a

a

a

a

a

a

7

p

.

t

0

0

Номер таблицы в каталоге

8-разрядное 16-ричное

число

Имя файла

Слайд 3

Шевченко А. В. Понятие страницы Страницы (Pages) 0 1 2 3

Шевченко А. В.

Понятие страницы

Страницы
(Pages)

0

1

2

3

...

N

Файл

Размер страницы

2 Кбайт

Всего байт

2048

Зарезервировано

40

Доступно

2008

4 Кбайт

4096

108

3988

8 Кбайт

8192

108

8084

16 Кбайт

16384

108

16276

32 Кбайт

32768

108

32660

64

Кбайт

64536

108

65428

Файл разбивается на страницы фиксированного размера,
который задается при создании таблицы. Часть пространства
страницы доступна для хранения данных, часть – зарезерви-
рована для внутреннего использования.
Каждая страница может содержать определенное число
записей (оно зависит от размера записи, но не более 512).
Записи не могут пересекать границы страниц.

Слайд 4

Шевченко А. В. Идентификатор записи tid = (npage*512+nrow), где npage –

Шевченко А. В.

Идентификатор записи

tid = (npage*512+nrow),
где npage – номер страницы;
nrow

– номер записи на странице

Каждая запись на странице данных имеет уникальный
идентификатор записи tid. Эти идентификаторы используются
для внутреннего управления данными, например в механизме
вторичных индексов или в структуре хранения данных btree.

Слайд 5

Шевченко А. В. Структуры хранения данных HEAP HASH ISAM BTREE Структура

Шевченко А. В.

Структуры хранения данных

HEAP

HASH

ISAM

BTREE

Структура хранения определяет способ размещения данных
на страницах

файла. От выбора структуры хранения может
зависеть эффективность выполнения запросов к таблице.
Слайд 6

Шевченко А. В. Размещение данных в структуре HEAP В структуре heap

Шевченко А. В.

Размещение данных в структуре HEAP

В структуре heap записи всегда

добавляются на последнюю страницу таблицы. Поэтому
эта структура хранения является самой быстрой для добавления данных. Структура heap
также является самой медленной для чтения, поскольку при любом запросе просматри-
ваются все страницы таблицы. При удалении записей высвободившееся пространство не
используется, пока таблица не будет реорганизована.

Номер

7

Фамилия

Возраст

Зарплата

Комментарий

Иванов

23

28 000.00

4

Петров

33

32 000.00

10

Сидоров

34

35 000.00

1

Климов

40

43 000.00

8

Федоров

53

46 000.00

5

Сергеев

23

22 000.00

11

Николаев

34

32 000.00

2

Александров

50

55 000.00

9

Никитин

43

41 000.00

6

Новиков

61

35 000.00

12

Андреев

41

22 000.00

3

Савельев

44

40 000.00

Страница 0

Страница 1

Страница 2

Слайд 7

Шевченко А. В. Размещение данных в структуре HASH Для структуры хранения

Шевченко А. В.

Размещение данных в структуре HASH

Для структуры хранения HASH таблица

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

Номер

7

Фамилия

Возраст

Зарплата

Комментарий

Иванов

23

28 000.00

4

Петров

33

32 000.00

10

Сидоров

34

35 000.00

1

Климов

40

43 000.00

8

Федоров

53

46 000.00

5

Сергеев

23

22 000.00

11

Николаев

34

32 000.00

2

Александров

50

55 000.00

9

Никитин

43

41 000.00

6

Новиков

61

35 000.00

12

Андреев

41

22 000.00

3

Савельев

44

40 000.00

Страница 0

Страница 2

Страница 1

Страница 3

Страница 4

Страница 5

Страница 6

Страница 7

Страница 8

Страница 9

Слайд 8

Шевченко А. В. Размещение данных в структуре ISAM 7 Иванов 23

Шевченко А. В.

Размещение данных в структуре ISAM

7

Иванов

23

28 000.00

4

Петров

33

32 000.00

10

Сидоров

34

35 000.00

1

Климов

40

43 000.00

8

Федоров

53

46

000.00

5

Сергеев

23

22 000.00

11

Николаев

34

32 000.00

2

Александров

50

55 000.00

9

Никитин

43

41 000.00

6

Новиков

61

35 000.00

12

Андреев

41

22 000.00

3

Савельев

44

40 000.00

Страница 0

Страница 2

Страница 1

Страница 3

Страница 4

13

Смирнов

39

32 000.00

<= 8

<= 4

<= 12

Страница 1

Страница 2

Страница 3

Страница 4

Слайд 9

Шевченко А. В. Особенности структуры ISAM При приведении таблицы к структуре

Шевченко А. В.

Особенности структуры ISAM

При приведении таблицы к структуре isam записи

сортируются по значению ключа.
Индекс организуется в виде двоичного дерева, в узлах которого находятся значения ключа
записей, начинающих новую страницу. Число уровней индекса определяется числом стра-
ниц таблицы как степень числа 2, необходимая для покрытия общего числа страниц.
При добавлении в таблицу или изменении данных индекс не изменяется. Эта структура
хранения эффективна при доступе по точному значению ключа, по диапазону значений
ключа и по левой части составного ключа. Структура isam не эффективна при быстром
росте таблицы, поскольку при этом добавление записей идет на страницы переполнения.
Слайд 10

Шевченко А. В. Размещение данных в структуре BTREE 7 Иванов 23

Шевченко А. В.

Размещение данных в структуре BTREE

7

Иванов

23

28 000.00

4

Петров

33

32 000.00

10

Сидоров

34

35 000.00

1

Климов

40

43 000.00

8

Федоров

53

46

000.00

5

Сергеев

23

22 000.00

11

Николаев

34

32 000.00

2

Александров

50

55 000.00

9

Никитин

43

41 000.00

6

Новиков

61

35 000.00

12

Андреев

41

22 000.00

3

Савельев

44

40 000.00

Страница 0

Страница 4

Страница 3

Страница 5

<= 8

Страница 1

Страница 2

Стр. 1

4

1

2

3

1539

1536

1537

1538

5

2048

6

2049

Стр. 2

10

7

8

9

2561

2050

2051

2560

11

2562

12

2563

Слайд 11

Шевченко А. В. Особенности структуры BTREE В структуре btree индекс растет

Шевченко А. В.

Особенности структуры BTREE

В структуре btree индекс растет при увеличении

таблицы, что исключает проблемы,
связанные с появлением страниц переполнения, которые характерны для структуры isam.
В структуре btree таблица состоит из четырех частей: страницы заголовка, индексных
страниц, страниц списка (leaf pages) и страниц данных. В этой структуре, в отличие от
isam, индекс указывает не на страницы данных, а на страницы списка (leaf pages), содержа-
щие пары: значение ключа – tid записи на странице данных. Индекс и страницы списка
перестраиваются при необходимости по мере увеличения таблицы.
Так же, как и isam, структура хранения btree эффективна при доступе по точному значению
ключа, по диапазону значений ключа и по левой части составного ключа. Поскольку в
структуре btree индекс указывает на компактные страницы списка, то число ступеней в
индексе будет значительно меньше, чем в структуре isam. К недостаткам btree можно
отнести динамическое перестроение таблицы в процессе работы (может замедлять работу
пользователей при интенсивном обновлении таблицы), а также риск возникновения
дедлока.