Международные
стандарты, определяющие построение сетевых, реляционных и распределенных файловых систем и баз данных, исторически вошли в разные разделы системы мёждународных стандартов (системы обработки информации — СОИ, информационные технологии — ИТ, взаимосвязь открытых систем —
ВОС), однако тематически весьма близки. Среди этих стандартов наиболее известны и активно используются базовые стандарты построения файловых систем (
FTAM) и стандарты, регламентирующие описания реляционных баз данных (
SQL). Учитывая их большое, принципиальное значение для систем обработки данных, более подробно ниже представлены концептуальные основы этих стандартов. Остальные стандарты имеют более узкое функциональное назначение и их содержание изложено относительно кратко.
- ISO 9007:1987. СОИ. Понятия и терминология для концептуальной модели базы данных.
- ISO 8211:1994. СОИ. ВОС. Спецификация описательного файла данных для обмена информацией.
- ISO 8571-1-5:1988. СОИ. ВОС. Передача файлов, доступ к файлам, управление системами файлов. Ч.1: Общее введение. Ч.2: Определение виртуального хранилища файлов. Ч.3: Определение услуг. Ч.4: Спецификация протокола.
- ISO 8907:1987. СОИ. Язык описания сетевой базы данных (NDL).
- ISO 9075:1989. СОИ. Язык описания реляционной базы данных (SQL). Дополнение 1:1992
- ISO 9579:1991. ИТ. ВОС. Доступ к удаленной базе данных (RDA).4.1: Общая модель, услуги и протокол. 4.2: Спецификация SQL.
Для эффективного использования международных стандартов в отечественной практике необходимо учитывать возможные расхождения в понятиях, терминологии и принципах испытаний информационных систем. При разработке и применении файловых систем,
СУБД и
БД может потребоваться дополнительная работа по логической, текстуальной и технической увязке, а также по согласованию требований, выдвигаемых международными и отечественными стандартами, а также ведомственными нормативно — техническими документами.
Содержание стандартов файловых систем и баз данных.
Стандарт
ISO 9007 — вводит понятие
информационной системы (ИС) и предлагает трехуровневую архитектуру ИС, которая содержит: концептуальный уровень; внешний уровень; внутренний уровень. В этой модели концептуальный уровень соответствует прикладному уровню базовой модели ВОС, а внешний уровень — уровню представления ВОС. Именно на этих уровнях реализуется общение пользователей с БД. В соответствии с этими представлениями концептуальный уровень ИС состоит из концептуальной схемы, информационной базы и информационного процессора. Под концептуальной схемой понимается описание возможных состояний связей, действующих между объектами в предметной области. Информационная база — это совокупность описаний объектов в предметной области и текущих состояний их связей. Информационный процессор — это механизм, нарушающий статичность концептуальной схемы и информационной базы в ответ на внешние команды.
Внешний уровень информационной системы включает внешнюю схему, внешнюю базу данных и внешний процессор. Внешняя схема представляет описание связей с точки зрения пользователей и прикладных программ. Во внешней базе данных информация представляется в соответствии с описаниями внешней схемы. Внешний процессор отражает связь пользователя и прикладных программ с данными.
На
внутреннем уровне описываются внутренние и физически представления информации. Информационная база отражает конкретное физическое представление описания предметной области. Внутренний процессор реализует физическое преобразование ин формации в соответствии с концептуальной схемой. Понятие
СУБД в концепции абстрагируется от понятия базы данных и рассматривается как средство для реализации внешнего и внутреннего уровне информационных систем. Подчеркивается, что концептуальная схема, в общем случае, может быть построена вне зависимости от конкретной СУБД.
Для построения совместимых, переносимых, распределенных систем работы с файлами предназначена группа стандартов FTAM (File Transfer, Access and Management). Они обеспечивают
унификации методов, взаимодействия с файлами на основе модели виртуальной файлохранилища. Поддерживаются возможности: организации не делимых
транзакций взаимодействия с данными, усложнения структур используемых данных и применения механизма восстановление при сбоях и искажениях данных. Модель регламентирует согласование различий в файлохранилищах реальных систем, не изменяя каждого из них. Для идентификации файлов в модели используется со ставной адрес, содержащий имя файлохранилища и имя в файлохранилище. Файл кроме имени характеризуется атрибутами общих свойств файла, атрибутами, определяющими его логическую структуру, и дополнительными данными о содержании файла. Для доступа к элементам данных используются атрибуты, определяющие логическую структуру файла. Определен набор операций, позволяющие изменять состояние файлохранилища и манипулировать элементами данных с учетом структуры доступа. Для этого используются примитивы сервиса FTAM над целыми файлами и над их элементами Важную роль при работе с файлами имеют регламентированные процедуры восстановления.
В стандарте ISO 8211 определены форматы данных, которые регламентируют и упрощают перемещение файлов и их частей между вычислительными системами. Общая структура файлов охватывает широкое разнообразие типов и архитектур данных пользователей. Определены иерархия, средства и способы описания содержимого данных, которые предлагается использовать для транспортировки данных совместно с их описаниями, а также правила использования набора кодированных знаков. Передаваться могут как структуры данных общего пользования (векторы, массивы, иерархии), так и структуры данных пользователя (последовательная, иерархическая, реляционная). Определены форматы обмена, обобщенная структура файлов, описания записей данных и три уровня обмена в зависимости от сложности структуры данных. Сформулированы аттестационные требования для проверки соответствия стандарту файлов и их описаний, а также изложена взаимосвязь стандарта с другими из группы стандартов по открытым системам. Приводятся примеры описания данных.
Стандарт ISO 8571 — состоит из пяти частей. Определены общие концепции передачи, доступа и управления файлами (FTAM), особенности услуг по передаче файлов и выполняемые при этом функции, поставщики услуг, принципы организации и модель виртуальной памяти файлов, структуры файлов и налагаемые на них ограничения. Приведено общее описание каждой из девяти фаз, на которые разбивается процесс использования услуг файла: инициализация режима FTAM, управление памятью файлов, выбор файла, управление файлом, открытие файла, доступ к данным, закрытие файла, закрытие выбора файла и окончание режима FTAM Определены общие протокольные процедуры и механизмы, группирование протокольных блоков данных, диагностика и восстановление после ошибок.
Часть 2 содержит абстрактную модель хранилища файлов (взаимосвязь файлов, атрибутов и ассоциаций, абстрактная, структура файлов, действия над файлами), набор действий, доступные для манипулирования элементами модели, включая действия над полными файлами (создание, выбор, открытие, закрытие, удаление файла, чтение и изменение атрибута) и действия при доступе к содержанию файла (чтение, вставка, замена, расширение, стирание). Приведены определения и описание атрибутов (файловых атрибутов, активных атрибутов, групп атрибутов). В двух обязательных приложениях приведены наборы ограничений на общую структуру файлов и определения документов общего типа, необходимых для обеспечения взаимодействия различных реализации FTAM. В приложениях приведены примеры элементов различных структур файлов, примеры способов модификации структурированных файлов.
В части 3 сосредоточены описания наборов услуг для различных режимов FTAM:
- установление режима, упорядоченное завершение режима и завершение режима по прерыванию;
- для режима выбора FTAM: выбор файла, завершение выбора файла, создание файла и вычеркивание файла;
- для процедур управления файла: чтение атрибутов и изменение атрибутов;
- для режима открытия файла: открытие файла и закрытие файла;
- для процедуры управления группированием: начало группирования и конец группирования.
Кроме того, определены наборы дополнительных услуг для процедур доступа к содержимому файла, передачи массивов данных и восстановления после ошибок. Для каждой услуги определен набор сервисных примитивов и параметров, а также последовательности действий, связанных с этими примитивами. В приложении определены значения параметров диагностики, отношения атрибутов к примитивам, передача файлов и управление разделением, диаграммы переходов состояний
Представлен базовый протокол передачи данных и базовый протокол передачи массивов данных, которые обеспечивают внутреннее обслуживание файлов; протокол восстановления после ошибок, который обеспечивает внешнее обслуживание файлов; абстрактный синтаксис для передачи протокольной информации FTAM и аттестационные требования к реализациям. Протоколы определены в понятиях действий, выполняемых при получении сервисных примитивов от поставщика услуг и при выдаче сервисных примитивов пользователю услуг. В приложениях приведены таблицы переходов состояний протокола или конструкции для определения протокольных блоков FTAM.
В стандарте ISO 8907 определены синтаксис и семантика трех языков сетевой базы данных:
- язык описания схемы для определения структуры и условий целостности сетевой базы данных (СБД),
- язык описания подсхемы для определения пользовательской структуры базы данных;
- язык манипулирования данными для определения процедур базы данных и исполнительных операторов в конкретной прикладной программе, работающей с СБД.
Заданы логические структуры данных и базовые операции для СБД. Стандарт обеспечивает переносимость определений баз данных и прикладных программ между аттестованными реализациями языка. Установлены два уровня языка, причем уровень 1 является подмножеством полного языка (уровень 2). Определены коды возврата. В трех информационных приложениях приведены примеры применения языка.
В стандарте ISO 9075 представлен язык SQL.
Язык SQL служит для удобного и понятного пользователям формулирования обращений к реляционным БД и манипулирования данными.
Язык обеспечивает общее управление данными в приложениях, где требуется гибкость структур данных и маршрутов доступа, специфическое манипулирование данными и изменение степени ограничения доступа [23,29]. Внимание акцентировано на обеспечении свойства целостности данных, т.е. глубокой взаимосвязи данных, в которой наибольшее значение имеет функциональная зависимость, что отличает их от набора независимых, совместно используемых файлов. Особенно полно механизм контроля целостности формализован на основе произвольных логических утверждений.
Версия стандарта на язык SQL 1989 года во многих частях имеет весьма общий характер и допускает широкое толкование, что привело к появлению его диалектов. В нем отсутствует ряд важных разделов, например, манипулирование схемой БД и динамический SQL. В 1992 году завершена работа над второй, значительно более полной версией стандарта ISO 9075:1992 (SQL-2). Она охватывает практически все аспекты, необходимые для реализации взаимодействия с БД: манипулирование схемой БД; управление транзакциями, с использованием точек сохранения, и сессиями — последовательностями транзакций; а также динамический SQL и общие механизмы контроля целостности л основе произвольных логических утверждений. Версия SQL-92 включает также все аспекты распределенной обработки данных и объектно-ориентированные возможности с языком Си++. Предполагается, что следующая версия стандарта будет содержать механизм триггеров и возможности применения абстрактных типов данных [23,17].
NIST обеспечивает формализованные услуги по тестированию реализации языка SQL на базе комплекта тестов, который является общедоступным. Он содержит проверки обязательных и факультативных функций. При положительных результатах тестирования обязательных функций NIST выдает аттестационные
сертификаты. Ведутся работы по расширению номенклатуры аттестационных тестов в соответствии с развитием языка SQL и сокращением доли факультативных тестов.
Язык SQL, в основном, является языком запросов и манипулирования данными, однако его функции и возможности значительно шире [29,25,18]. Он обеспечивает построение эффективных диалоговых систем обработки транзакций со стандартизированными наборами параметризируемых запросов. В языке имеются средства:
- определения и манипулирования схемой БД;
- определения ограничений и контроля целостности;
- определения и уничтожения структур физического уровня для эффективной реализации транзакций;
- авторизации и защиты доступа к данным;
- использования точек сохранения транзакций и откатов при сбоях;
- средства динамической компиляции запросов, на базе которых возможна диалоговая их обработка.
Язык имеет строгую математическую основу на базе предикатов первого порядка. Группы по стандартизации и разработчики СУБД обеспечивают совместимость версий языка снизу вверх в последовательных расширениях языка. Стандартизированы
синтаксис и
семантика операторов выборки и манипулирования данными. Имеется возможность указания в запросе потребности группирования отношения — результата по указанным полям с поддержкой условий выборки на всю группу целиком. При этом необязательно удаление кортежей дубликатов в окончательном или промежуточных отношениях — результатах. Формализованы средства ограничения целостности БД, включающие возможность определения первичных и внешних ключей отношений и проверочных ограничений целостности. В случае нарушения ограничений целостности предусмотрен откат транзакций в точку, непосредственно предшествующую операции манипулирования данными, или полный откат транзакции к ее началу.
Динамический SQL обеспечивает включение операторов, позволяющих в процессе выполнения транзакций откомпилировать и выполнить любой оператор этого языка. Имеются специальные операторы, поддерживающие встраивание операторов SQL в традиционные языки программирования и, прежде всего, в тексты программ на языке Си. При этом осуществляется последующая компиляция операторов SQL в текст программы на чистом языке Си. Предусмотрена параметризация операторов SQL значениями переменных, входящих в прикладную программу.
В языке обеспечена защита доступа к данным средствами самого языка. С каждой транзакцией неявно связывается идентификатор пользователя, от имени которого она выполняется. После создания нового отношения все 'привилегии, связанные с этим отношением, принадлежат только пользователю — создателю отношения. Проверка полномочности доступа к данным происходит на основе информации о полномочиях, существующих во время компиляции соответствующего оператора SQL.
Стандарт определяет синтаксис и семантику двух компонентов языка реляционной базы данных: языка описания схемы для задания структуры и условий целостности реляционной базы данных (РБД) и языка манипулирования данными для определения базы данных и исполнительных операторов в конкретной прикладной программе, работающей с РБД. Заданы логические структуры данных и базовые операции для РБД. Язык обеспечивает функциональные возможности для разработки, доступа, сохранения, управления и защиты базы данных. Стандарт обеспечивает переносимость определений баз данных и прикладных программ между аттестованными реализациями языка. Установлены два уровня языка, причем уровень 1 является подмножеством полного языка (уровень 2).
В информационных приложениях определен встроенный синтаксис для включения операторов языка манипулирования данными в стандартные прикладные программы, в т.ч. Си, Кобол, Паскаль и ПЛ-1. Такой встроенный синтаксис является сокращенной записью для стандартизированной прикладной программы, в которой встроенные операторы SQL заменены в явной форме вызовами процедур БД, которые содержат операторы SQL. Стандарт применяется для реализации в среде, которая может включать языки прикладных программ, языки запросов конечных пользователей, системы генерирования сообщений, системы библиотек программ и системы распределенной связи, а также различные средства для создания баз данных и организации обработки данных.
Таким образом, описания SQL являются фактическими руководствами, которые регламентируют действия пользователей различных уровней:
- пользователей, создающих базу данных и программистов;
- конечных пользователей информации из базы данных.
Кроме интерфейса с пользователями SQL может играть роль интерфейса между различными СУБД. В этих случаях в СУБД должны встраиваться средства формирования запросов к другим СУБД на языке SQL. Язык SQL реализован в большинстве популярных коммерческих СУБД, однако, версии реализованного языка и степень соответствия определенному стандарту несколько различаются. Отсутствие полного корректного описания языка затрудняет анализ диалектов, применяемых в различных СУБД, и оценку соответствия стандарту. Поэтому перенос информации баз данных на новые аппаратные платформы целесообразно и наиболее просто проводить совместно с той же СУБД.
Стандарт ISO 9579 регламентирует доступ к удаленной базе данных (RDA). Он предназначен для унификации установления дистанционного соединения между клиентом, действующим по запросу прикладной программы или администратора данных, и сервером, который управляет обменом данными с базой данных. Это обеспечивает взаимодействие систем управления базами данных в гетерогенной информационной среде.
Услуги RDA охватывают:
- административное управление диалогом между клиентом и сервером;
- управление ассоциацией;
- управление ресурсами;
- языки доступа к данным между отдельным клиентом и отдельным сервером.
Стандарт состоит из двух частей. Часть 1 определяет обобщенную модель доступа к удаленной базе данных и частную модель для доступа к базам данных с использованием языка баз данных SQL, а также операции над моделью базы данных в виде абстрактного взаимодействия между источником запроса и средством обслуживания базы данных. Приведены основные концепции .RDA. В стандарте определяются услуги RDA, предоставляющие пользователю возможности управления транзакцией и манипулирования данными. Описан протокол, обеспечивающий эти услуги. Операторы SQL передаются в виде символьной строки с отдельным списком входных параметров с описанием особых случаев. Услуги управления транзакциями включены как в однофазовые, так и в двухфазовые протоколы. Показано отображение услуг RDA на соответствующие элементы процедур.
Часть 2 определяет специализацию удаленного доступа к базам данных с использованием языка баз данных SQL, операции над моделью данных в виде абстрактного взаимодействия между источником запроса и средством обслуживания базы данных. Определяются услуги RDA, предоставляющие пользователю возможности управления ассоциацией, управления ресурсом, управления транзакцией и манипулирования данными. Описан протокол, обеспечивающий эти услуги. Показано отображение услуг RDA на соответствующие элементы процедур. Приведены аттестационные требования к реализациям протокола. Разрабатывается расширение стандарта по управлению распределенной базой данных для различных реализации SQL.