Поделиться через


Создание баз данных

Область применения: Windows | Windows Server

Создание баз данных

База данных ESE состоит из одной или нескольких таблиц, которые упорядочивают данные по столбцам и строкам. База данных ESE определяется по имени и идентификатору базы данных. База данных ESE выглядит как один файл в операционной системе Microsoft Windows; однако база данных хранится в виде коллекции страниц. Эти страницы содержат метаданные, описывающие данные в базе данных, сами данные и один или несколько индексов, которые хранят различные заказы данных. База данных может содержать до 2^31 страниц или 16 терабайт данных для базы данных с 8 КБ страниц.

Приложение создает экземпляр ядра СУБД, а затем создает базу данных и присоединяет ее к экземпляру. До 6 баз данных можно одновременно подключить к экземпляру с JetCreateDatabase или JetAttachDatabase. Один или несколько сеансов должны быть запущены в базе данных, так как все последующие операции ESE выполняются в контексте сеанса. Для каждого потока с помощью ESE необходимо открыть отдельный сеанс.

Эта процедура инициализирует ESE и создает базу данных.

Инициализация ESE и создание базы данных

  1. JetCreateInstance: создает экземпляр ядра СУБД.

    Windows XP и более поздних версий: эта функция доступна в Windows XP и более поздних версиях. В Windows 2000 поддерживается только один экземпляр, и этот экземпляр создается неявно.

  2. JetSetSystemParameter: системные параметры, влияющие на физический макет, например JET_paramLogFilePath и JET_paramSystemPath, необходимо задать перед инициализацией экземпляра с помощью JetInit. Параметры, заданные на этом этапе, задаются для всех баз данных, созданных в экземпляре. JetSetSystemParameter — единственная функция, которая может использовать экземпляр перед инициализацией с помощью JetInit.

  3. JetInit: инициализирует экземпляр. Экземпляр необходимо инициализировать с помощью JetInit , прежде чем его можно будет использовать с любыми другими функциями.

  4. JetBeginSession: создает сеанс для всех последующих транзакций. Все транзакции базы данных происходят в контексте сеанса (JET_SESID).

  5. JetCreateDatabase: создает базу данных и возвращает дескриптор идентификатору базы данных (JET_DBID).

    Если база данных уже существует, шаг 5 выше заменяется следующими двумя шагами:

    1. JetAttachDatabase: присоединяет базу данных по имени к сеансу

    2. JetOpenDatabase: возвращает идентификатор базы данных, используемый в последующих операциях базы данных.

База данных может быть отключена от одного экземпляра ESE с помощью JetDetachDatabase и последующего подключения к другому экземпляру с JetAttachDatabase. При отключении базы данных ее можно скопировать в виде одного файла с помощью стандартных служебных программ Windows. Однако при присоединении базы данных к экземпляру ESE его нельзя скопировать, так как ESE открывает файлы базы данных исключительно. Кроме того, если экземпляр завершает работу, файл базы данных не может быть скопирован отдельно, так как он нуждается в файлах журнала транзакций, связанных с ним, для восстановления после этого сбоя.