Конспект лекций_Администрирование БД. Теоретические основы баз данных
Скачать 0.98 Mb.
|
Коллекция СУБД.1. СУБД dBase. Хранение данных в формате DBF.В восьмидесятые годы было разработано большое число однопользовательских СУБД. В нашей стране наибольшее распространение получили FoxBASE, dBASE (III, IV), Paradox, а в конце восьмидесятых годов приобрел популярность пакет Clipper. FoxBASE, dBASE и Clipper использовали одни и те же принципы организации информации и были совместимы на уровне файлов баз данных, поэтому иногда все эти системы рассматривали как модификации dBASE. Система программирования dBASE была разработана фирмой Ashton-Tate. В dBASE III plus основное внимание было уделено совершенствованию пользовательского интерфейса (режим ASSIST), что существенно упростило процедуру создания и модификации баз данных, сортировку и индексацию записей. Создание и использование довольно сложных структур баз данных было возможно непосредственно из режима ASSIST без составления прикладных программ на языке dBASE, что делало эту СУБД доступной для широкого круга пользователей. Это обеспечило огромную популярность dBASE III plus, и в конце восьмидесятых годов эта СУБД являлась фактическим стандартом для реляционных баз данных. Одним из недостатков СУБД dBASE, Paradox являлась невозможность создания с их помощью файлов .EXE, автономно работающих под управлением DOS. Именно поэтому широкое распространение (в нашей стране) приобрел пакет Clipper фирмы Nantucket, который с самого начала предназначался для компиляции прикладных программ. Clipper работал с файлами .DBF, обеспечивая достаточно высокое быстродействие. В тоже время это была открытая система, позволявшая расширять возможности языка за счет приложений, написанных на других языках программирования - Assembler'е и С. Файл формата DBF состоит из записи заголовка и записей с данными. В записи заголовка определяется структура набора данных. Количество полей определяет число подзаписей полей. Для описания каждого поля существует одна подзапись поля. Данные начинаются с позиции, указываемой в записи заголовка в байтах 08-09. Записи с данными начинаются с байта, содержащего признак удаления. Если в этот байт занесен пробел в коде ASCII (0х20), то запись не удалялась; если же в первом байте – звездочка (0х2A), то запись удалена. Записи с данными следуют за заголовком (байты располагаются последовательно), и включают в себя фактическое содержимое полей без каких-либо дополнительных символов. Длина записи (в байтах) определяется суммированием указанных длин всех полей. Индексный файл строится самой СУБД. В признаке завершения заголовка файла Microsoft FoxPro и Access ставят символ с кодом 0x0D. Ниже приведены два варианта формата DBF – для dBASE версии III и версии IV: Структура заголовка файла данных для таблицы dBASEIIIPLUS:
n - последний байт массива с описаниями полей. Размер массива зависит от количества полей в табличном файле.
Записи таблицы: Записи в табличном файле располагаются непосредственно за заголовком таблицы. Данным записи предшествует байт, указывающий на удаленность записи: значение 0x20 (пробел) указывает, что запись не удалена, значение 0x2A (звездочка) – запись была удалена. Поля упаковываются записями без разделителей полей или терминаторов записи. Конец файла помечается единственным байтом (с EOF-маркером), OEM-код которого соответствует значению 26 (0x1A). Вы можете ввести данные в кодовой странице OEM, как показано ниже.
Бинарные-, MEMO-, OLE-поля и .DBT-файлы: MEMO-поля хранят данные в .DBT-файлах, состоящих из перечисляемых последовательных блоков (0, 1, 2 и т.д.). Размер блока равен 512 байт. Первый блок в .DBT-файле (нулевой блок) - заголовок .DBT-файла. MEMO-поле каждой записи .DBF-файла содержит номер (значение указывается в кодовой странице OEM), указывающий на блок с хранимыми данными. Если поле не содержит никаких данных, .DBF-файл будет заполнен пробелами (0x20) (а не числами). В случае изменения данных какого-либо поля, блоки могут изменить свои порядковые номера для отображения новой позиции данных в .DBT-файле. Структура заголовка файла данных для таблицы dBASEIV 2.0:
n - последний байт массива с описаниями полей. Размер массива зависит от количества полей в табличном файле.
Записи таблицы DBASE IV: Записи в табличном файле располагаются непосредственно за заголовком таблицы. Данным записи предшествует байт, указывающий на удаленность записи: значение 0x20 (пробел) указывает, что запись не удалена, значение 0x2A (звездочка) – запись была удалена. Поля упаковываются записями без разделителей полей или терминаторов записи. Конец файла помечается единственным байтом (с EOF-маркером), OEM-код которого соответствует значению 26 (0x1A).
Memo-поля и .DBT-файлы для DBASEIV: MEMO-поля хранят данные в .DBT-файлах, состоящих из перечисляемых последовательных блоков (0, 1, 2 и т.д.). Переменная BLOCKSIZE определяет размер каждого блока. Первый блок в .DBT-файле (нулевой блок) - заголовок .DBT-файла. MEMO-поле каждой записи .DBF-файла содержит номер (значение указывается в кодовой странице OEM), указывающий на блок с хранимыми данными. Если поле не содержит никаких данных, .DBF-файл будет заполнен пробелами (20h) (а не числами). В случае изменения данных какого-либо поля, блоки могут изменить свои порядковые номера для отображения новой позиции данных в .DBT-файле. |