Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Базы данных

Внутреннее представление базы данных

Для удобной работы пользователей базы данных и нормальной работы сервера InterBase создается внутренний образ базы данных. Каждая база данных, кроме таблиц, созданных программистом (пользователем), содержит и набор системных таблиц. В зависимости от версии ODS набор системных таблиц различный. Так, версия ODS 10 содержит набор системных таблиц, представленных на рис. 3.2.

База данных Book (рис. 3.2) содержит только системные таблицы. Имена системных и пользовательских таблиц указываются в алфавитном порядке.

Для вывода на экран списка имен системных таблиц можно воспользоваться утилитой IBConsol. После открытия базы данных (в нашем случае база данных Book) из главного меню утилиты подать команду:

View ->• System Data

Структура всех системных таблиц «прошита» в ядре InterBase. Для каждой базы данных, зарегистрированной на данном сервере InterBase, состав системных таблиц будет одинаковым.

При подключении пользователя к базе данных сервер InterBase читает первую страницу файла, указанного пользователем, и определяет, действительно ли это файл базы данных InterBase. Если «да», то сервер определяет размер страницы и заново перечитывает весь файл базы данных. Затем читает страницу указателей и заполняет системную таблицу

?Q IBConsole

Шн

Console View Server Database Tools

Help

*

S0.L

В Ж InterBase Servers

  • - "S Local Server
  • ? Databases

^ CATS.GDB B 'fe book

Edo<) Domains im Tables l5) Views

Stored Procedures fx External Functions Generators

CD Exceptions $ Blob Fillers ^ Roles |§j§l Backup UJ Certificates i] Server Log 1^5 Users

Server: Local Server

Database : book

Name

Owner Description

cm

R D В $CHARACT E R_S E T S

SYSDBA

cm

RDB$CHECK_CONSTRAINTS

SYSDBA

cm

RDB$C0LLATI0NS

SYSDBA

cm

RDB$DATABASE

SYSDBA

cm

RDB$DEPENDENCIES

SYSDBA

cm

RDB$EXCEPTIONS

SYSDBA

cm

RDB$FIELDS

SYSDBA

cm

RDB$FIELD_DIMENSIONS

SYSDBA

cm

RDB$FILES

SYSDBA

cm

RDBSFILTERS

SYSDBA

cm

RDB$FORMATS

SYSDBA

cm

RDB$FUNCTIONS

SYSDBA

cm

RDB$FUNCTION_ARGUMENTS

SYSDBA

cm

RDBSGENERATORS

SYSDBA

cm

RDB$INDEX_SEGMENTS

SYSDBA

cm

RDBSINDICES

SYSDBA

cm

RDB$LOG_FILES

SYSDBA

cm

RDB$PAGES

SYSDBA

cm

RDB$PROCEDURES

SYSDBA

cm

RDB$PROCEDURE_PARAMETERS

SYSDBA

cm

RDB$REF_CONSTRAINTS

SYSDBA

cm

RDBSRELATIONS

SYSDBA

cm

RDB$RELATION_CONSTRAINTS

SYSDBA

cm

RDB$RELATION_FIELDS

SYSDBA

cm

RDB$R0LES

SYSDBA

cm

RDB$SECURITY_CLASSES

SYSDBA

cm

RDB$TRAN SACHONS

SYSDBA

cm

RDBSTRIGGERS

SYSDBA

cm

RDB$TRIGGER_MESSAGES

SYSDBA

cm

RDB$TYPES

SYSDBA

cm

RDB$USER_PRMLEGES

SYSDBA

cm

RDB$VIEW_RELATIONS

SYSDBA

<1

1111

>1

User: SYSDBA

32 objects listed

Рис. 3.2. Состав системных таблиц

RDBSPages прочитанными данными. Зная распределение страниц (записи таблицы RDB%Pages) по отношениям, сервер InterBase формирует структуру данных, начиная с системных таблиц и заканчивая пользовательскими таблицами. После выполнения этой процедуры сервер InterBase сообщает пользователю, что он готов выполнять запросы пользователя, т. е. база данных открыта.

Под отношением сервер InterBase понимает не только таблицы пользователей, но и прочие объекты базы данных: генераторы, триггеры, просмотры и т. д. Сведения о каждом объекте отдельной строкой заносятся в системную таблицу RDB%Pages.

Созданная структура между отношениями и есть внутреннее представление базы данных.

С каждой из системных таблиц можно работать как с пользовательскими таблицами. Так, если выполнить запрос

SELECT * FROM RDBSPages

то будет получена следующая информация — рис. 3.3.

1: 1

Client dialect З

Transaction is ACTIVE.

AutoDDL: ON

ч] Interactive SOL - book.gdb

File Edit Query Database

Transactions Windows

Help

0? * ?0 * f? D f*

Cd ю

r*m ©г (=?

й s, - і

Data

Plan I Statistics

RDB$PAGE_NUMBER

rdb$relationjd|rdb$page_sequence

RDB$PAGE_TYPE

?

3

0

0

4

4

0

0

6

6

1

0

4

7

1

0

6

8

2

0

4

9

2

0

6

10

3

0

4

11

3

0

6

12

4

0

4

13

4

0

6

14

5

0

4

15

5

0

6

16

6

0

4

17

6

0

6

18

7

0

4

19

7

0

6

20

8

0

4

C : BD_IB_DELPHIBookook. gdb

Рис. 3.3. Содержимое системной таблицы RDBSPages

Назначение полей таблицы RDBSPages:

RDBSPAGEN UMBER — порядковый номер страницы в базе данных;

RDBSRELATION ID — идентификатор объекта, которому принадлежит страница;

RDBSPAGESEQUENCE — порядковый номер страницы в своей группе;

RDBSPAGE TYPE — тип страницы в соответствии с табл. 3.1.

База данных BOOK не имеет пользовательских таблиц и содержит только системные таблицы.

Вывод. База данных состоит из отдельных страниц разного типа, но одинакового размера. Количество и тип страниц определяются сервером InterBase. Для удобства работы пользователя базы данных и сервера InterBase создается внутренний образ базы данных. Пользователь составляет на языке SQL запрос {SELECT, INSERT, UPDATE, DELETE) и посылает его базе данных. Сервер InterBase, получив запрос пользователя, интерпретирует, а затем исполняет его. При исполнении запроса на страницах данных создаются новые версии записей. Таким образом, пользователь работает не с самой базой данных, а с версиями записей. При необходимости пользователь базы данных может зафиксировать версии записей в самой базе данных, т. е. сделать версии основными записями базы данных.

Контрольные вопросы

  • 1. Расскажите об истории создания СУБД InterBase.
  • 2. Расскажите об основных идеях, положенных в построение СУБД InterBase.
  • 3. Назовите типы страниц, используемые в СУБД InterBase, укажите их назначение.
  • 4. Расскажите о трех состояниях страниц.
  • 5. Назовите четыре состояния транзакции, приведите их особенности.
  • 6. Объясните процедуру подключения пользователя к базе данных.
  • 7. В чем назначение системных таблиц баз данных?
  • 8. Что такое структура данных базы данных?
  • 9. Расскажите о версиях структур данных.
  • 10. Расскажите о внутреннем представлении базы данных.
 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Пред   СОДЕРЖАНИЕ   След >
 

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