Основные элементы СУБД типа dBASE
Напомним некоторые термины, используемые в теории реляционных баз данных. Будем представлять информацию, составляющую базу данных, в виде совокупности прямоугольных таблиц.
Поле - наименьший поименованный элемент информации, хранящейся в БД и рассматриваемой как единое целое (рис. 6.7).
Поле может быть представлено числом, буквами или их сочетанием (текстом). Например, в телефонном справочнике полями являются фамилия и инициалы, адрес, номер телефона, т.е. три поля, причем все текстовые (номер телефона также рассматривается как некоторый текст).
Рис. 6.7. Представление информации в реляционной БД
Запись - совокупность полей, соответствующих одному объекту. Так, абоненту телефонной сети соответствует запись, состоящая из трех полей.
Файл - совокупность связанных по какому-либо признаку записей (т.е. отношение, таблица). Таким образом, в простом случае база данных есть файл.
Все данные в БД разделены по типам. Говоря точнее, вся информация полей, принадлежащих одному столбцу (домену), имеет один и тот же тип. Такой подход позволяет ЭВМ организовать контроль вводимой информации.
При определении полей БД каждое поле может быть отнесено к одному из следующих типов:
• символьный тип, обозначение С (character);
• числовой тип, обозначение N (numeric);
• логический тип, обозначение L (logical);
• тип даты, обозначение Data;
• примечаний, обозначение Memo.
Каждый тип служит для хранения специфической информации. В поле типа С можно помещать любые имеющиеся на клавиатуре символы: буквы, цифры, знаки препинания и т.д. Символьное поле хранится как текст, выровненный по левому краю. Над символьными полями нельзя выполнять каких-либо вычислений.
В числовом поле могут быть только цифры, знаки «плюс» и «минус», десятичная точка. Числа выровнены по правому краю. Над числовыми полями можно выполнять вычисления.
Поле логического типа содержит величины, которые могут принимать только одно из двух значений: истинно или ложно.
Поле типа даты может содержать реальные даты в представлении, принятом в США (месяц/день/год) или в европейских странах.
Описание всех имен, типов и размеров полей составляют структуру базы данных, которая хранится в памяти вместе с данными. Эту структуру всегда можно просмотреть и при необходимости исправить. Следует различать структуру файла и информацию, содержащуюся в нем. Основное различие между структурой и информацией состоит в том, что структура остаетсянеизменной, а информацияменяетсяпри каждом редактировании или вводе.
Семейство СУБД dBASE. Среди СУБД для ПК наиболее распространенным в мире является семейство dBASE фирмы «Ashton-Tate». Такая популярность объясняется отчасти исторически, так как эта СУБД появилась одной из первых на рынке программных продуктов данного профиля; не в меньшей степени этому способствовала удачность заложенных основ конструкции СУБД и командного языка. Одна из наиболее широко используемых (в настоящее время устаревших) версий этого семейства - dBASE III+.
В новой версии dBASE IV концепция СУБД и командный язык получили значительное развитие, позволившее устранить недостатки предыдущей версии, а также существенно обогатить палитру средств обработки данных и улучшить интерфейс пользователя.
К числу СУБД реляционного типа, предназначенных для ПК, относятся семейство dBASE (dBASE II, III, III+ и IV), Clipper, Foxbase, R:BASE, Paradox и др. В этих СУБД записи и, соответственно, поля имеют обычно фиксированную длину (чаще всего длина такой записи достигает 4000...5000 байт). Исключение составляют поля типа Memo, используемые, например, в СУБД семейства dBASE. Число полей в перечисленных СУБД варьируется от 128 до 1024.
Длина поля зависит от типа поля и может составлять от 255 до 4000 байт для текстовых полей, до 20 байт для числовых полей и имеет фиксированные значения для полей типа даты (8 байт) и логических полей (1 байт). Поле типа Memo служит для хранения больших массивов текстовой информации и хранится в отдельном файле БД, но воспринимается как поле в составе основного файла БД. Это поле имеет плавающую длину, определяемую объемом введенной текстовой информации, и может достигать 32767 байт.
Большинство СУБД реляционного типа для ПК позволяют создавать файлы с числом записей до 1 млрд. и объемом до 2 Гбайт. Обычно ограничением на число и объем записей, в первую очередь, выступает емкость внешней памяти ПК на магнитных дисках.
В состав многих СУБД, предназначенных для работы на ПК, входят три основных компонента: командный язык, интерпретирующая система или компилятор для преобразования команд к выполнимому виду и средства взаимодействия пользователя с СУБД (интерфейс пользователя).
Командный язык служит для выполнения и обеспечения требуемых операций с данными - позволяет создавать структуры файлов БД и манипулировать данными, создавать прикладные программы, экранные формы ввода и вывода информации и т.д. Структура и возможности языка в значительной степени определяют облик конкретной СУБД, ее возможности. В состав командного языка ПК также обычно входят специальные команды по установке параметров и состояний системы (SET-команды), а также функции, предназначенные для различных видов обработки данных и выполнения вспомогательных действии.
В СУБД команды можно выполнять по одной (после набора с клавиатуры) или группами команд в автоматическом режиме, предварительно записанных в специальный (программный) файл. Команды языка СУБД записываются в текстовой форме, близкой к обычному языку. Для того чтобы ПК могла выполнять такую команду, ее надо преобразовать в вид исполнимых машинных команд.
Существует два принципиально различных способа такого преобразования. В первом способе используется интерпретирующая система, которая преобразует поочередно команды в исполнимый вид передих непосредственным выполнением. Во втором способе сначала вся исходная программа преобразуется (компилируется) в программу из исполнимых машиной команд и затем эта программа выполняется.
Первый способ выполнения команд СУБД имеет то преимущество, что исходная программа занимает сравнительно немного места и памяти. Кроме того, этот способ позволяет выполнять команды по одной в режиме ввода с клавиатуры или в режиме, управляемом с помощью меню. Однако выполнение исходной программы посредством интерпретации команд происходит достаточно медленно. Второй способ в отличие от первого позволяет выполнять программу значительно быстрее, но программа, составленная из машинных команд, занимает значительно больше оперативной памяти.
Взаимодействие пользователя с СУБД, в которой используется интерпретирующая система, обычно может осуществляться в режиме, управляемом с помощью меню, и реже, ввода команд с клавиатуры. Первый режим дает возможность пользователям работать с пакетом СУБД, не зная командного языка. Содержание выполняемых команд записывается в позициях меню на естественном языке. Пользователь выбирает нужную позицию меню и нажимает клавишу исполнения команды. Обычно в меню включают достаточно широкий круг команд языка СУБД, позволяющих выполнять многие операции по обработке данных, однако далеко не все. При использовании режима ввода команд с клавиатуры требуется знать их синтаксис и способы применения. Этот режим применяется уже более подготовленными пользователями. Признаком данного режима СУБД служит какой-либо знак (например, точка в левом нижнем углу экрана), который служит приглашением для набора команды. В дальнейшем для простоты будем называть этот режим просто командным.
Последние версии таких СУБД, как dBASE, RBASE и др., содержат генераторы прикладных программ, позволяющие пользователям без знания командного языка создавать программы средней степени сложности. Эти средства могут применяться как неподготовленными пользователями, так и профессиональными программистами для уменьшения трудозатрат при разработке прикладных программ.
Как уже отмечалось, первой созданной в этом классе программой была dBASE II, созданная Уэйном Рэтлиффом (США) в 1981г. Варианты этой системы до сих пор используются для целей обучения на учебных ЭВМ. Вскоре эта система была усовершенствована, а ее возможности расширены. Появились СУБД dBASE III и dBASE III+, ставшие на долгое время стандартом систем управления базами данных для персональных компьютеров. Позже получили распространение системы FoxBase, FoxPro и Clipper - все имеющие набор команд, похожий на СУБД семейства dBASE, и использующие ту же организацию данных в файлах с типичным расширением .dbf (Data Base File - файл базы данных), СУБД dBASE IV. Языки этих систем послужили основой для создания огромного числа прикладных информационно-поисковых систем, автоматизированных рабочих мест (АРМ) в различных предметных областях.
Система управления базами данных dBASE IV значительно усилена по сравнению с dBASE III+ по многим параметрам (ниже в скобках указаны данные для dBASE III+). В частности, можно создавать двумерные массивы переменных общим объемом до 1170 элементов, может быть открыто до 99 (16) файлов, увеличено максимальное число переменных - 15000 (265), число полей в файлах БД - 255 (128), число открытых индексных файлов -10 (7) и т.д. Как уже отмечалось выше, командный язык dBASE IV значительно расширен и улучшен по сравнению с командным языком dBASE III+.
Включение в язык dBASE IV новых команд позволило существенно улучшить следующие функции пакета СУБД семейства dBASE:
· разработку иерархических систем меню прикладныхзадач;
· разработку экранных форм ввода и вывода данных;
· организацию ввода и вывода информации в отдельные окна на экране;
· вывод данных на печать;
· возможности по поиску и обработке данных в файлах БД;
· обеспечение работы в среде ЛВС и др.
Команды типичной СУБД для персональных компьютеров предназначены для выполнения следующих функций:
• описания БД;
• наполнения БД;
• редактирования БД;
• поиска информации в БД;
• формирования и вывода на экран или принтер информации в виде отчетов.
Представление о возможностях пакета dBASE IV можно получить при знакомстве с управляющим центром (УЦ). реализующиминтерфейс пользователя, управляемый меню. В состав УЦ входят шесть меню:
• меню Data («Данные») для создания, изменения структуры файлов БД, ввода, обновления и отображения данных на экране;
• меню Queries («Запросы») для формирования и выполнения запросов на выборку и обновление данных;
• меню Forms(«Формы») для разработки экранных форм ввода и вывода информации;
• меню Reports («Отчеты») для разработки форм отчетов и вывода их на печать;
• меню Labels («Марки») для разработки форм марок и вывода их на печать;
• меню Applications («Прикладные программы») - генератор разработки прикладных программ.
Функции УЦ и расположение меню на экране отражают последовательность работы пользователя при разработке прикладной информационной задачи. Работа обычно начинается с создания структуры файлов БД, которые требуются для ее решения. Возможные типы файлов приведены в табл. 6.1.
После создания структур файлов БД прикладной задачи требуется ввести в них данные.
Ввод и обновление данных в меню «Данные» выполняется на экране в стандартных формах. Эти формы не всегда вполне удобны для пользователя. В УЦ предусмотрено меню «Формы», позволяющее разрабатывать собственные экранные формы для ввода и вывода информации.
Таблица 6.1