Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 55
Текст из файла (страница 55)
Кроме основных операторов формулирования запросов и манипулирования БД, он включал также средства описания и изменения схемыБД, определения ограничений целостности, защиты доступа (авторизации) котношениям и их полям, получения точек сохранения транзакций, выполнения откатов и прочее.Постепенно SQL был взят на вооружение различными организациями ифирмами-разработчиками ПО и появились стандарты SQL следующих организаций: ANSI (American National Standards Institute - Американский Национальный Институт Стандартов), SAG (SQL Access Group), X / O p e n (группа стандартов для UNIX), ISO (International Standard Organization - Международная организация no стандартизации), федерального правительстваСША, а также фирмы IBM.Наиболее широко используемыми стандартами являются стандарт 1989года ANSI SQL-89 и стандарты 1992 года: ANSI SQL-92 и ISO SQL-92.264Часть 2.
Проектирование и использование БДСтандарт ANSI SQL-89 описывает три варианта использования SQL(три интерфейса): «модульный язык», «встроенный SQL» и «непосредственный вызов».Модульный язык предусматривает возможность создания процедур, вызываемых из программ на традиционных языках программирования (С, Кобол,Фортран и другие).Встроенный SQL предусматривает включение в программы на обычныхязыках программирования SQL-операторов. Совокупность SQL-операторовназывают HOST-языком. Обработка программы с использованием SQL-операторов происходит в два этапа: сначала работает препроцессор, преобразующий SQL-операторы в некоторые команды языка программирования с учетом используемой СУБД, а затем - обычный компилятор с основного языкапрограммирования.
При включении SQL-операторов используется статический метод, означающий полное определение параметров операторов до выполнения программы.Интерфейс на уровне непосредственных вызовов отличается от встроенного SQL тем, что исключена предварительная обработка препроцессором ииспользуются внешние библиотеки функций.Основной набор операторов SQL включает операторы определения схемыБД, выборки и манипулирования данными, управления транзакциями, авторизации доступа к данным, поддержки встраивания SQL в системы программирования и другие вспомогательные средства.Несмотря на широкий набор возможностей, этот стандарт обладал функциональной неполнотой. Работа над SQL была продолжена, что привело к появлению в 1992 г.
новых стандартов. Получили широкое применение и оказалисьпо сути эквивалентными стандарты ISO SQL-92 и ANSI SQL-92.Стандарт SQL-92 поддерживается практически всеми современными программами работы с базами данных. Он расширяет функции предыдущего стандарта, а главное, - предусматривает динамический SQL. Отличием динамического метода выполнения SQL-операторов от статического является то, чтопараметры SQL-операторов определяются непосредственно при выполнениипрограммы.
Несмотря на некоторое снижение быстродействия выполненияпрограммы, динамический метод выполнения SQL-операторов позволяетповысить гибкость работы с базами данных и повысить независимость приложений от типов баз данных.С принятием этого стандарта начата работа над новым стандартом SQL3.Стандарт языка SQL3 разрабатывался ANSI совместно с ISO. Более точно: комитетом ХЗН2 по стандартам в области синтаксиса и семантики языков баз данных института ANSI (ANSI ХЗН2) и рабочей группой W G 3 побазам данных подкомитета SC21, занимающегося взаимосвязью открытых систем, управлением данными и открытой распределенной обработкой, Объединенного комитета Международной организации по стандартизации и Меж-9. Дополнительные вопросы применения баз данных265дународной электротехнической комиссии ( I S O / I E C J T C I ) . Кроме того, наразработку стандарта оказывали влияние организации, работающие в области объектно-ориентированных технологий, в частности: консорциум поставщиков программного обеспечения объектно-ориентированных баз данныхO D M G (The Object Database Management Group) и консорциум по программному обеспечению, разрабатывающий спецификации объектно-ориентированных интерфейсов O M G (Object Management Group).Текущий проект SQL3 практически полностью включает спецификациюSQL2, а также содержит ряд новых возможностей, в том числе две весьма существенных: объектные функциональные возможности и средства обеспечения вычислительной полноты языка - Управление хранимыми процедурамиPSM (Procedure Storage Management).К новой объектной возможности SQL3 прежде всего относится обеспечение объектной ориентированности таблиц БД.
По сравнению с обычнымиреляционными таблицами теперь строки таблиц могут содержать абстрактные типы данных (АТД) и ссылки на АТД из других строк, а также иметьоднозначные идентификаторы (вместо поиска строки по значениям). Поддержка АТД предусматривает средства определения типов и методов доступа к ним, аналогичных объектно-ориентированным языкам программирования типа С++, Smalltalk, Ada и других.Напомним, что хранимые процедуры (подраздел 5.4) - это группы выполняемых операторов, которые хранятся не в приложении, а в базе данных.К разрешенным внутри хранимых процедур операторам относятся: операторы SQL, арифметические операторы, операторы передачи управления, описания функций и т. д.СтандартODMG-93Главной целью стандарта O D M G - 9 3 является обеспечение независимости (мобильности) прикладных систем от систем управления объектными базами данных ( С У О Б Д ) .
При разработке стандарта ставилась задача увязкирешений с рекомендациями группы, занимающейся стандартизацией в области объектно-ориентированных языков программирования - O M G (ObjectManagement Group).Согласно ODMG-93, СУОБД, с одной стороны, рассматривается как СУБД,в которой данные имеют объектную модель, а с другой - как средство представления объектов БД в качестве объектов ряда языков программирования.С У О Б Д расширяют языки программирования, например, С++, средствамидолговременного хранения объектов, управления конкурентным доступом,восстановления данных, выполнения объектных запросов и т. д.В стандарте ODMG-93 дается определение следующих компонентов базданных:• объектной модели, которую должны поддерживать С У О Б Д ;Часть 2.
Проектирование и использование БД266• я з ы к а определения объектов ODL (Object Definition Language);• языка объектных запросов OQL (Object Query Language);• я з ы к а м а н и п у л и р о в а н и я объектами O M L ( O b j e c t M a n i p u l a t i o nLanguage), используемого в объектно-ориентированных языках программирования.Схема взаимосвязи основных элементов стандарта O D M G показаны нарис. 9.3.БиблиотекиБазы данныхИнструментальныекомпонентыПостоянное хранилище объектовРис.
9.3. Схема взаимосвязи основных элементов стандарта O D M GЗа основу языка ODL в стандарте ODMG-93 взят язык определения интерфейсов IDL (Interface Definition Language) архитектуры OMG. В IDLкаждый объект базы данных имеет строго определенный и единственныйтип. Поведение объекта определяется перечнем допустимых операций в соответствии с типом. Объектная модель позволяет описывать связи типа 1:1,1:М и М:М.Язык объектных запросов OQL представляет собой декларативный языкработы с объектными БД.
Синтаксической основой языка является SQL2.Основное отличие OQL от языка SQL состоит в том, что запрос формулируется в терминах объектов и коллекций (а не таблиц), а результатом являютсяобъекты и коллекции (а не кортежи).9. Дополнительные вопросы применения баз данных267Операции манипулирования данными, управления транзакциями, динамического вызова запросов на O Q L и другие действия выполняются с помощью библиотек классов и функций.Постоянное хранилище объектов представляет собой интегрированнуюсистему для согласованного хранения данных и программного кода.
Логическая организация хранилища должна основываться на модели данных ODMG.Его физическая организация у различных С У О Б Д может различаться, но онадолжна обеспечивать эффективные структуры данных для хранения иерархии типов и объектов, являющихся экземплярами этих типов.Перечень инструментальных средств и библиотек в стандарте не определяется. Важным является объектно-ориентированный принцип их организации. Так, инструментальные средства поддержки разработки пользовательских приложений и их графических интерфейсов программируются на одномиз OML и сохраняются как часть иерархии классов. Библиотеки функций(доступа, вычислений и т. д.) хранятся в иерархии типов и являются доступными из программного кода приложения.Стандарт O D M G - 9 3 используется при разработке С У О Б Д и в качествеканонической объектной модели при проектировании систем управлениянеоднородными мультибазами данных.
Примером использования стандартаявляется проект IRO-DB программы ESPRIT III.ТехнологияCORBAДля информационных систем с распределенной обработкой в качествестандарта группой O M G предложена технология CORBA (Common ObjectRequest Broker Architecture - архитектура брокера общих объектных запросов).
Спецификации написаны на пассивном языке описания интерфейсов1DL (Interface Definition Language), определяющем функциональность компонентов - внешние интерфейсы с потенциальными клиентами. Написанные на этом языке компоненты должны быть доступны независимо от языков, инструментальных средств, операционных систем и сетевой инфраструктуры программных компонентов.Основу архитектуры CORBA составляет брокер объектных запросов ORB(Object Request Broker), управляющий взаимодействием клиентов и серверов враспределенной сетевой среде. Брокер объектных запросов представляет собойобъектную шину, позволяющую объектам прозрачно генерировать запросы иполучать отклики от других локальных и удаленных объектов.Важнейшими свойствами CORBA ORB, определяющими ее достоинствадля архитектуры клиент-сервер, являются следующие:• возможность статически определять вызовы методов при компиляцииили находить их динамически в процессе выполнения;• возможность вызова методов серверного объекта с использованием произвольного языка высокого уровня.