Рис. 3.28. Главное меню (IX). Поиск в частотном словаре (по заголовкам)
Рис. 3.29. После поиска. Найдено четыре документа (сокращенный формат)
Рис. 3.30. Просмотр РК в полном формате
Рис. 3.31. Просмотр полного текста (начало документа)
поиск по значениям полей РК с последующим переходом к соответствующему полному тексту.
После запуска интерфейсной программы на экране терминала появляется заставка системы, а после инициализации — Главное меню.
Структура Главного меню определяется структурой поискового файла, содержащего РК документов, и состоит из следующих строк и компонент (рис. 3.28):
строка горизонтального меню. Перемещение по горизонтальному меню осуществляется с помощью клавиш <^>
;
строка запроса, строка предупреждений, строка комментария.
Рубрики горизонтального меню разделяются на две группы:
постоянные рубрики — пункты *Команда*, *3апрос*, *NotaBene*;
переменные рубрики — список поисковых полей регистрационных карт. Этот список определяется составом РК и
может меняться для различных БД из Банка ЮРИУС.
При поиске в словаре по Значению необходимо в экранном окне набрать несколько первых символов отыскиваемого в словаре термина (рис. 3.28). На экране отображается страница словаря, начиная с первого термина, содержащего введенные символы. После формирования запроса необходимо перейти к рубрике Команда и выполнить запрос. Результат поиска (в сокращенном формате одна запись — одна строка экрана) представлен на рис. 3.29. Для перехода к просмотру полного текста (рис. 3.31) необходимо подвести курсор к соответствующей строке (рис. 3.29) или к позиции Текст (рис. 3.30) и нажать .
Интерфейс полнотекстового поиска (DC). Пример главного меню DC-интерфейса приводится на рис. 3.32. Поиск в частотном словаре активизируется рубрикой Значение (рис. 3.32).
Рис. 3.32. Главное меню (DC). Поиск в частотном словаре полных текстов
Рис. 3.33. После поиска. Найдено 12 страниц
Для поиска страниц, содержащих термин запроса, необходимо установить курсор на термин и нажать (рис. 3.33). Переход к полному тексту (рис. 3.34) осуществляется активизацией рубрики Текст Главного меню.
Рис. 3.34. Первая из найденных 12 страниц
В Приложениях 6, 7 содержатся задание на лабораторную работу по исследованию логической и физической структуры БД ЮРИУС и пример отчета о такой работе, из которого ясно, каким образом может осуществляться навигация в БД путем использования диалоговых команд FoxPro.
Контрольные вопросы
Назовите основные типы файлов, образующих физическую структуру БД FoxPro.
Каково назначение индексного файла? Каким образом он может быть создан и активизирован?
Каким образом осуществляется отображение информации из БД?
Перечислите команды навигации в БД.
Каким образом можно перейти к началу файла? В конец файла?
Перечислите команды диалогового ввода-вывода информации.
Назовите основные конструкции, используемые для организации циклов.
В чем заключается различие операторов if и do case?
Перечислите основные понятия, характеризующие связь данных в БД.
Что такое экранные формы и каким образом они создаются и редактируются?
Что такое форматы отчетов и как они создаются и редактируются?
Охарактеризуйте логическую и физическую структуру БД ЮРИУС.
Глава 4
ЭЛЕМЕНТЫ И КОНСТРУКЦИИ ЯЗЫКА SQL
Первоначально задуманный как инструмент для выборки и представления данных, содержащихся в БД, SQL сегодня представляет собой нечто гораздо большее. Несмотря на то что выборка данных по-прежнему остается одной из наиболее важных функций SQL, сейчас этот язык используется для реализации всех функциональных возможностей, необходимых для управления БД, в том числе для:
организации данных — SQL позволяет определять и изменять структуру представления данных, а также устанавливать отношения;
обработки данных — SQL позволяет изменять содержимое базы данных: добавлять новые данные, удалять или обновлять уже имеющиеся в ней данные;
управления доступом — SQL позволяет ограничивать возможности пользователя по чтению и изменению данных
(защита данных от несанкционированного доступа) и координировать их совместное использование пользователями, работающими параллельно.
Таким образом, хотя SQL и не объявляется как полноценный язык программирования (в стандартном SQL89, реализованном в полном объеме для реляционных СУБД, нет оператора проверки условий и ветвления, нет оператора перехода, нет операторов циклов и т. д., однако SQL большинства промышленных СУБД содержит эти и многие другие операторы, позволяющие создавать полноценные процедуры обработки данных), он является подъязыком баз данных, предназначенным для управления базами данных. Несмотря на не совсем точное название, SQL на сегодняшний день является единственным стандартным языком для работы с реляционными базами данных.
Операторы SQL встраиваются в базовый язык, например PASCAL, FORTRAN или С, и дают возможность получать доступ к базам данных из прикладных программ. Кроме того, из многих языков программирования операторы SQL можно адресовать к СУБД в явном виде, используя интерфейс вызовов функций.
Официальный стандарт языка SQL был опубликован в 1986 г. Американским институтом национальных стандартов (ANSI) и Международной организацией по стандартам (International Standards Organization — ISO), а в 1992 г. значительно расширен. Стандарт X/OPEN для переносимой среды программирования на основе операционной системы UNIX также включает в себя SQL в качестве языка для доступа к базам данных. Консорциум поставщиков компьютерного оборудования и баз данных (SQL Access Group) определил для SQL стандартный интерфейс вызовов функций, который является основой протокола ODBC компании Microsoft и входит также в стандарт X/OPEN. Эти стандарты дефакто являются официальным одобрением SQL, и именно они ускорили завоевание им рынка.
Многие из членов комитетов по стандартизации ANSI и ISO представляли фирмы — поставщики различных СУБД, в каждой из которых был реализован собственный диалект SQL. Как и диалекты человеческого языка, диалекты SQL были в основном похожи друг на друга, однако несовместимы в деталях. Во многих случаях комитет просто игнорировал существующие различия и не стандартизировал некоторые части языка, определив, что они реализуются по усмотрению разработчика. Этот подход позволил объявить большое число реализаций SQL совместимыми со стандартом, однако сделал сам стандарт относительно слабым.
Чтобы заполнить эти пробелы, комитет ANSI продолжил свою работу и создал проект нового, более жесткого стандарта SQL2. В отличие от стандарта 1989 г. проект SQL2 предусматривал возможности, выходящие за рамки таковых, уже существующих в реальных коммерческих продуктах.
Перечислим эти отличия SQL2.
Коды ошибок. В стандарте SQL2 определены стандартные Коды ошибок, которые возвращают операторы SQL при возникновении ошибок.
Типы данных. В стандарте SQL2 упомянуты многие стандартные типы данных (например, символьные строки переменной длины, дата и время, а также денежные единицы), однако отсутствуют «новые» типы данных, такие, как графические и мультимедийные объекты.
Системные таблицы. В стандарте SQL-89 умалчивается о системных таблицах, в которых содержится информация о структуре самой базы данных. Поэтому каждый поставщик создавал собственные системные таблицы. Например, их структура отличается даже в четырех реализациях SQL компании IBM. В SQL2 системные таблицы стандартизированы.
Интерактивный SQL. В стандарте SQL-89 определен только программный SQL, используемый прикладной программой, но не интерактивный SQL. Например, оператор select, предназначенный для выполнения запросов к базе данных в интерактивном режиме, в стандарте отсутствует.
Программный интерфейс. В стандарте SQL2 определен интерфейс встроенного SQL для некоторых языков программирования, но не интерфейс вызова функций.
Динамический SQL. В стандарте SQL-89 не описаны элементы SQL, необходимые для разработки приложений общего назначения, таких, как генераторы отчетов и программы создания и выполнения запросов. Однако эти элементы, известные под названием динамический SQL, имеются почти во всех СУБД и в различных системах значительно различаются. В стандарт SQL2 входит раздел динамического SQL.
Семантические отличия. Поскольку некоторые элементы определены в стандартах как зависящие от реализации, может возникнуть ситуация, когда в результате выполнения одного и того же запроса в двух совместимых СУБД будут получены два различных набора результатов. Отличия результатов обусловлены различиями в обработке значений null, разными агрегатными функциями и несовпадением процедур удаления повторяющихся строк.
Последовательность сравнения. Стандарт SQL2 позволяет программе или пользователю указывать требуемую последовательность сортировки результатов запроса.
Структура базы данных. В стандарте SQL-89 определен язык, операторы которого используются уже после того, как база данных была открыта и подготовлена к работе. Детали именования баз данных и первоначального подключения к ним в разных реализациях сильно отличаются или несовместимы. Стандарт SQL2 в некоторой степени унифицирует этот процесс, хотя и не может полностью ликвидировать все отличия.
Основными направлениями развития SQL2 (и принятие SQL3) являются:
стандартизация интерфейсов вызова функций;
стандартизация хранимых процедур;
добавление объектно-ориентированных возможностей.
1>