- •Базы данных
- •1. Введение в базы данных
- •1.1. Базы данных и информационные системы
- •1.2. Архигсюура информационной системы
- •1.3. Системы управления базами данных
- •1.4. Локальные информационные системы
- •1.5. Способы разработки и выполнения приложений
- •1.6. Схема обмена данными при работе с бд
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •Сотоудники
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Постреляционная модель
- •2.5. Многомерная модель
- •1996 1994 Петров Смирнов Яковлев
- •2.6. Объектно-ориентированная модель
- •2.7. Типы данных
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Индексирование
- •3.3. Связывание таблиц
- •3.4. Контроль целостности связей
- •3.5. Теоретические языки запросов
- •I аспределенное Удаленное Распределен- Удаленн! 1йдо- Распределен- предстаеление представление ная функция ступ к данным наяЬд
- •4.5. Информационные системы в Интернете и интранете
- •Часть 2. I Ъоектиросанн ? и использование бд
- •7. Средства автоматизации проектирования
- •7.1. Основные определения
- •7.8. Рекомендации по применению case-систем
- •9. Дополнительные вопросы применения баз данных
- •9.1. Программно-аппаратные платформы
- •9.2. Перспективы развития субд
- •9.3. Стандартизация баз данных
- •9.4. Характеристика технологии ado.Net
- •10.1. Общая характеристика
- •10.2. Новые возможности Microsoft Access 2002
- •10.3.Средства поддержки проектирования
- •10.4. Создание основных элементов бд
- •IQdbl mdb
- •Option Compare Database Public Function funl() beep End Function
- •10.5. Работа с гиперссылками
- •10.6. Использование языка sql
- •Аргументы макрокоманды ' Инструкция sQl. Select distinctrow tof
- •10.7. Защита баз данных
- •10.9. Обслуживание баз данный
- •10.10. Репликация баз данных
- •Реплицируемые объекты
- •Реплицируемые объекты
- •10.11. Работа с мультимедиа-данными
- •Тип объекта
- •Comic Chat Boom Microsoft Graph so Music Prop pry Page 2 1 Option f ropery Page21 Ры-ndox FableВидео-клип
- •10.12. Создание файлов приложений
- •10.13. Страницы доступа к данным
- •Краткая характеристика отличий сДд от форм и отчетом
- •10.14. Разработка проекта
- •Распределение атрибутов по вариантам
- •11.1. Пользовательский интерфейс
- •11.2. Характеристика проекта
- •11.3. Компиляция и выполнение проекта
- •11.4. Разработка приложения
- •11.5. Средства интегрированной среды разработки
- •Управление параметрами среды
- •11.6. Базы данных и средства работы с ними
- •Компоненты приложений для баз данных
- •11.7. Создание таблиц базы данных
- •11.8. Создание приложения bde
- •Значения свойств компонентов
- •11.9. Работа с отчетами
- •12. Субд Visual FoxPro 8.0
- •12.1. Общая характеристика
- •12.2. Новые возможности Visual FoxPro 8.0
- •12.3. Элементы проекта
- •12.4. Интерфейс Visual FoxPro
- •12.5. Средства автоматизации разработки
- •12.6. Создание баз данных
- •12.7. Таблицы и индексы
- •12.8. Организация межтабличных связей
- •12.9. Обеспечение ссылочной целостности
- •12.10. Создание запросов
- •Variables:
- •13. Microsoft sql Server 2000
- •13.1. Характеристика sql Server
- •13.2. Язык запросов Transact-sql
- •13.3. Системные базы данных и таблицы
- •13.4. Создание баз данных
- •13.5. Работа с таблицами
- •15.1. Принципы функционирования Web-приложений
- •15.2. Архитектура Web-приложений, публикующих бд
- •15.3. Обзор Web-серверов
- •15.4. Использование Personal Web-server
- •15.5. Использование Microsoft Internet Information Server
- •15.6. Использование Apache дляMicrosoft Windows 9х/2000
- •Вы видите это вместо ожидаемой страницы?
- •15.7. Варианты создания Web-узла
- •16. Интерфейсы программирования Web-приложений
- •16.1. Общий интерфейс взаимодействия cgi
- •18. Публикация бд средствами Microsoft Access
- •18.1. Характеристика вариантов публикации
9.3. Стандартизация баз данных
Необходимость стандартизации в области обработки данных осознана еще на этапе внедрения первых «массовых» СУБД. В настоящее время в индустрии информационных технологий работает более 250 подкомитетов официальных стандартизирующих организаций. Ими принято или находится в процессе разработки более 1000 стандартов. Рассмотрим характеристику стандартизации и наиболее распространенные стандарты лля баз данных.
Характеристика процесса стандартизации
В процессе стандартизации сначала идет накопление опыта организаций разработчиков и предложений теоретиков. Затем выполняются обобщение, прогнозирование дальнейшего развития и выработка предложений по единым стандартам. После этого производится трудоемкое согласование документов представителями заинтересованных организаций Потом осуществляется реализация принятых стандартов в программных разработках.
На принятие стандартов оказывают влияние многие факторы. Во первых, разрабо гкпй стандартов занимаются несколько организаций и каждая из них в итоге принимает свой < тандарт. чем-то отличающимся от других. Во-вторых, процесс разработки стандартов организациями идет параллельно с разработками, поэтому подготавливаемые документы постоянно модифицируются. В-третьих, не все ясно к моменту обсуждения и часто требуются научные исследования, затягивающие принятие решений. В-четвертых, на характер принимаемых решений оказывают влияние мощные организации компьютерной индустрии (элемент политики) и т. д. Все это, естест венно, затягивает принятие с гандартов н? длительное время. Стандарты обычно имеют несколько версий с различными уточнениями, пояснениями, дополнениями и дополнительными документами.
Процесс претьорения стандартов в жизнь для крупных корпораций оказывается более простым, т. к. они обычно участвуют в принятии стандартов. Более мелкие и молодые организации сталкиваются с проблемами интерпретации стандартизованных рекомендаций. Стандарты не могут быть одинаково хороши для всех практических задач, несмотря на усилия идеологов стандартов. Все это, безусловно, приводит к многообразию решений.
Короче говоря, наличие международных стандартов и рекомендаций не устраняет всех возможных противоречий и многообразия принимаемых фир- мами-разраоотчиками решений. Польза от стандартов неоспорима потому, что без них было бы хуже, а часто и просто невозможно, решить вопросы международного уровня. Например, без принятия стандартов на связь, нельзя было бы организовать сеть Интернет.
Обычному пользователю и начинающему разработчику требуется иметь общее представление об имеющихся стандартах и их реализациях наиболее крупными фирмами. Это может помочь ему решить собственные за чачи, не изобретая велосипед.
Реализации стандартов разными фирмами отличаются друг от др> га, и все их особенности не описать. Познакомившись с наиболее важными стандартами, пользователь может легко использовать любую реализацию стандарта. В частности, эт< i относится к стандартному языку доступа к БД - языку SQL. Средства его реализации в различных СУБД отличаются друг от друга незначительно.
Стандартизация в области баз данных затрагивает синтаксис и семантику языков баз данных, управление данными и транзакциями, организацию взаимодействия СУБД с другими элементами распределенных систем, параллельную обработку запрос» ю, защиту данных от несанкционированного доступа и другие аспекты.
Рассмотрим с точки зрения стандартизации основной язык доступа к реляционным базам данных — язык SQL.
Стандартизация языка SQL
Язык SQL разработан в середине 70-х годов научно-исследовательской лабораторией фирмы IBM в рамках npof кта ре. шционной СУ БД System R. Исходное название языка - SEQUEL (Structured English QUEry Language). Язык основан на ре шционном исчислении с переменными кортежами (подраздел 3.7). Кроме основных операт орои формулирования запросов и манипулирования БД, он включа о также средства описания и изменения схемы БД, определения ограничений целостности, защиты доступа (авторизации) к отношениям и их полям, получения точек сохранения транзакций, выполнения откатов и прочее.
Пос гепенно SQL был взят на вооружение различными организациями и фирмами-разработчиками ПО и появились стандарты SQL следующих организаций: ANSI (American National Standards Institute - Американский Национальный Институт Стандартов), SAG (SOL Access Group), X/Open (группа стандартов для UNIX), ISO (International Standard Organization - Международная организация по стандартизации) федерального правительства США, а также фирмы IBM.
Наиболее широко используемыми стандартами являются стандарт 1989 гола ANSI SQL-89 и стандарты 1992 года: ANSI SQL-92 и ISO SQL-92.
Стандарт ANSI SQL-89 описывает три варианта использования SQ1, (три интерфейса): «модульный язык», «встроенный SQL» и «непосредственный вызов».
Модульный язык предусматривает возможность создания процедур, вызываемых из программ на традиционных языках npoi раммирования (С. Кобол, Фортран и другие).
Встроеннъл SQL предусматривает включение в программы на обычных языках программирования SQL-операторов. Совокупность SQL-операторов называют HOST-языком. Обработка программы с использованием SQL опера горов происходит в два этапа: сначала работает препроцессор, преобразующий SQL-операторы в некоторые команды языка программирования с учетом используемой СУБД, а затем - обычный компилятор с основного языка программирования. При включении SQL-операторов используется статический метод, означающий полное определение параметров операторов до выполнения программы.
Интерфейс на уровне непосредственных вызовов отличается от встроенного SQL тем, что исключена предварительная обработка препроцессором и исполь ауются внешние библиотеки функций.
Основной набор операторов SOL включает операторы определения схемы БД, выборки и манипулирования данными, управления транзакциями, авторизации доступа к данным, поддержки встраивания SQL в системы програм миродания и другие вспомогательные средства.
Несмотря на широкий набор возможностей, этот стандарт обладал функциональной неполнотой. Работа над SQL была продолжена, что привело к появлению в 1992 г. новых стандартов. Получили широкое применение и оказались по сути эквивалентными стандарты ISO SQL-92 и ANSI SOL-92.
Стандарт SQL-92 поддерживается практ ически всеми современными про- . раммами раооты с базами данных. Он расширяет функции предыдущего стандарта, а главное, - предусматривает динамический SQI,. Отличием динамического метода выполнения SQL-операторов от статического является то, что параметры SOL-оператооов определяются непос редственно при выполнении программы. Несмотря на некоторое снижение быстродействия выполнения программы, динамический метод выполнения SQL-операторов позволяет повысить гибкость работы с базами данных и повысить независимость приложений от типов баз данных.
С принят нем этого стандарта начата работа над новым стандартом SQL3.
Стандарт языка SQL3 разрабатывался ANSI совместно с ISO. Более точно: комитетом ХЗН2 по стандартам в области синтаксиса и семантики языков баз данных института ANSI (ANSI ХЗН2) и рабочей группой WG3 по базам данных подкомитета SC21, занимающегося взаим! ювязью открытых систем, управлением данными и открытой распределенной обработкой, Объединенного комитета Международной организации по стандартизации и Международной электротехнической комиссии (ISO/IEC JTCI). Кроме того, на разработку стандарта оказывали влияние организации, работающие в области объеь гно-ориентированных техноло! ий, в частности: консорциум поставщиков программного обеспечения объектно-ориентированных баз данных OI)MG (The Object Database Management Group) и консорциум по программному обеспечению, разрабатывающий спецификации объектно-ориентированных интерфейсов OMG (Object Management Group).
Текущий проект SOL3 практически полностью ьключает спецификацию SQL2, а также содержит ряд новых возможностей, в том числе две весьма существенных: объект ны< функциональные возможности и средства обеспечения вычислительной полноты языка - Управление хранимыми процедупами PSM (Procedure Storage Management).
К новой объектной возможности SQL3 прежде всего относи гея обеспечение объектной ориентированности таблиц БД. По сравнению с обычными реляционными таблицами теперь строки таблиц могут содержать абстрактные типы данных (АТД) и ссылки на АТД из других строк, а также иметь однозначные идентификаторы (вместо поиска строки по значениям). Поддержка АТД предусматривает средства определения типов и методов доступа к ним, аналогичных объектно-ориентировгнным языкам программирования типа С++, Smalltalk, Ada и других.
Напомним, что хранимые процедз ры (подраздел 5.4) - это группы выполняемых операторов, которые хранятся не в приложении, а в базе данных. К разрешенным внутри хранимых процедур операторам относятся: операторы SQL, арифметические операторы, операторы да редачи управления, описания функций и т. д.
Стандарт ODMG-93
Главной целью стандарта ODMG-93 является обеспечение независимости ^ мобильное ги) прикладных систем от систем управления объектными базами данных (СУОБД). При разработке стандарта ставилась задача увязки решений с рекомендациями группы, занимающейся стандартизацией в области объектно-ориентированных языков программирования - OMG (Object Management Group).
Согласно ODMG-93, СУОБД, с одной стороны, рассматривается как СУБД, в котором данные имеют объектную модель, а с другой - как средство представления объектов ЬД в качестве объектов ряда языков программирования. СУОБД расширяют языки программирования, например, С++, средствами долговременного хранения объектов, управления конкурентным дост упом, восстановления данных, выполнения объектных запросив и т. д.
В стандарте ODMG-93 дается определение следующих компонентов баз данных:
объектной модели, которую должны поддерживать СУОБД;
языка определения объектов ODL (Object Definil ы n Language):
языка объектных запросов OQL (Object Query Language);
языков манипулирования данными, используемых в объектно-ориентированных языках программирования.
За основу языка ODL в стандарте ODMG-93 взят язык определения интерфейсов IDL (Intei face Definition Language) архитектуры ОМС. В IDL каждой объект базы данных имеет строго определенный и единственный тип. Повеление объекта определяется перечнем допустимых операций в соответствии с типом. Объектная модель позволяет описывать связи типа 1:1,1:М и М:М.
Язык объектных запросов OQL предстаьляет собой декларативный язык работы с объ( ктными БД. Синтаксической основой языка является SQL2. Основное отличие OQL от языка SQL состоит в том, что запрос формулируется в терминах объект ов и коллекций (а не таблиц), а результатом являются объекты и коллекции (а не кортежи).
Операции манипулирования данными, управления транзакциями, динамического вызова запросов на OQL и другие действия выполняются с помощью библиотек классов и ф> нкций.
Стандарт ODMG-93 используется при разработке СУОБД и в качестве канонической объектной модели при проектировании систем управления неоднородными мультибазами данных. I [римером использования стандарта является проект IRO-DB программы ESPRIT III.
Технология CORBA
Для информационных систем с распределенной обработкой в качестве стандарта группой OMG предложена технология CORBA (Common Object Request Broker Architecture - архитектура брокера общих объектных запросов). Спецификации написаны нг пассивном языке описания интерфейсов IDL (Interlace Definition Language), определяющем функциональность компонентов внешние интерфейсы с потенциальными клиен гами. Написан - ные на этом языке компонен ты должны быть доступны независимо о г языков, инструмента тьных с редств, операционных систем и сетевой инфраструктуры программных компонентов.
Основу архитектуры С( )RBA составляет орокер объектных запросов ORB (Object Request Broker), управляющий взаимодействием клиентов и серверов в распределенной сетевой среде. Брокер объектных запросов представляет собой 268
объектную шину, позволяющую объектам призрачно генерировать запросы и полу чать отклики от других лока тьных и удаленных объектов.
Важнейшими свойствами CORBA ORB, определяющими ее достоинства для архитектуры клиент сервер, являются следующие:
возможность статически определять вызовы методов при компиляции или находить их динамически в процессе выполнения;
возможность вызова методов серверного объекта с использованием произвольною языка высокого уровня. 11о< кольку CORBA отделяет интерфейс от его реализации и предоставляет независимые от языка типы данных, это дает возможность вызывать объекты из любого языка и для любой ОС;
самоописывасмость системы заключается в предоставлении метаданных на этапе выполнения для описания каждого известного серверного ин терфейса;
прозрачность локальная и удаленная состоит в том, что ORB может вы подняться в автономном режиме или взаимодействовать с другими ORB с помощью сервисов протокола IIOP (Internet Inter-ORB Protocol - Ин гернет-протоко та взаимодействия URB);
встроенная безопасность и механизм транзакции основаны на включении в сообщения соответ» твующей контекстной информации;
возможность полиморфных сообщений основана на реализации вызова функции целевого объекта;
возможность инкапецмции существующих приложений, основанная на отделении определения объекта от его реализации в архитектуре системы.
В общем, С( )RBA можно определить как промежуточное программное обеспечение, потенциально связанное с другими формами клиент-серверных видов программного обеспечения. Программное обеспечение CORBA разработано для всех основных аппаратных и программных платформ. Поэтому клиентские приложения CORBA одной операционной системы легко взаимодействуют с сервером приложений в любой другой операционной системе.
Версия технологии CORBA Real-Time ориентирована на поддержку- функционирования и повышение производительности распределенных систем в масштабе реального времени. С ее помощью предполагается задавать продолжительность функционирования отдельных компонентов и приоритеты выполнения, планировать работу компонентов и т. д.
Стандарты в продуктах ведущих фирм
Рассмотрим, как действующие стандарты используются в программных продуктах ьедущих фирм IBM, Microsoft и Borland.
Фирма IBM для обеспечения мобильности (переносимости) операционных систем разработа та архитектуру 5А1 (System Application Architecture,).
Архитектура SAA предполагает наличие унифицированных средств разработки приложений, доступа к БД и телекоммуникационного доступа. Кроме того, у пользователей должна быть возможност ь использовать готовые приложения других организаций. Согласно архитектуре SAA, системные программные средства предоставляют три интерфейса:
доступа конечного пользователя;
прикладно! о программирования;
телекоммуникационный (связи с удаленными пользователями и объектами сети).
Инте рфейс доступа конечного пользователя охватывает комп пеке технических, организационных и программных решений, обеспечивающих простоту и унификацию взаимодействия конечного пользователя с различными моделями ЭВМ.
Интерфейс прикладного программирования, кроме стандартных языков и средств программирования, содержит генератор при ложений. языки командных процедур, языки баз данных и запросов (SQL и OMF) и средства обеспечения диалога.
В качестве телеком муникационного интерфейса предлагаю.ся протоколы сетевой архитектуры SNA (System Network Architecture - сетевая архитектура системы), средства выхода в сети, поддерживающие протокол Х.25, а также протоколы потоксч данных для устройств типа IBM 3270.
Фирма Microsoft на основе стандарта CAL разработала открытый интерфейс ODBC (()реп DataBase Connectivit у - совместимость открытых баз данных) доступа к ба^ам данных из приложений.
Стандарт СЛЕ( Common Application Enyironnient — общая прикладная среда) был разработан группой SAG и Х/Ореп с целью разрешить прот иворечия множества схожих существующих стандартов прик одного программирования. Этот стандарт опирается на стандарты ANSI, ISO и собственные стандарты гру пи. Основное его назначение - обеспечение взаимодействия прикладных программ в открытых системах.
ODBC представляет собой интерфейс прикладного программирования в виде библиотеки функций, вызываемых из различных программных сред и позволяющих приложениям унифицирован™ обращаться на SQL к базам данных различных форматов
Функции интерфейса ODBC включают следующие шесть основных групп:
назначение идентификаторов окружения, соединения и SQL-операторов;
соединение;
выполнение SQL-операторов;
получение результатов;
управ ление транзакциями;
идентификация ошибок и смешанные функции.
При выполнении приложений, использующих ODBC, предусматриваются следующие этапы:
инициализация (назначение идентификаторов окружения и соединений, соединение с сервером, назначение идентификаторов SQL-операторам);
выполнение SQL-операторов с анализом результатов;
завершение (освобождение идентификаторов SQL-операторов, разрыв соединения, освобождение идентификаторов соединений и окружения).
Интерфейс ODBC поддерживает общий набор функций языка SQL для доступа к базам данных и позволяет работать в так называемом прозрачно,.' режи не по соглашениям конкретной базы данных. Кроме того, он содержит уровни функциона чьности или ие рархии функциональных возможностей: минимальную, основную и рссширенную.
Программные средства поддержки ODBC корпорация Microsoft обычно поставляет вместе с СУБД. Так, вместе с MS Access предоставляется менеджер драйв( ров и драйвер доступа к MS SOL Server. Драйверы доступа к форматам других БД берутся от фирм-разработчиков соответствующих СУБД.
Фирма Borland в основных программных прод\ ктах Delphi, Paradox for Windows, d Base for Windows и других, использует собственное стандартизованное средство доступа к батам данных Borland Database Engine (BDE) - процессор баз данных фирмы Borland.
BDE включает следующие три основных компонента: стандартный интер- фейс доступа к базам данных IDAPI (Integrated Database Application Program Inte rfa< e), драйверы баз данных распространенных форматов и утилиты настройки драйверов и псевдонимов.
Интерфейс 1DAPI насчитывает более 150 функций доступа к различным БД и позволяет просто и единообразно работать с локальными и с удаленными данными. В основе механизма доступа лежит понятие курсора (подраздел 3.9). IDAPI не о) раничен минимальным набором функций, поддерживаемых БД. Как и в ODBC, здесь поддерживается расширенное множество функций в соответствии с возможностями форматов локальных и удаленных БД.
Важной особенностью интерфейса ID API является обеспечение программ пользователя средствами вторичного уточнения результатов запросов - фильграми. Функционируя в среде клиентской части приложения, фильтры позволяют при работе с уделенными данными уменьшить объем передаваемой по сети ин(Ьормапии. Фильтры IDAPI позволяют описыват ь сложные логические условия над данными БД.
Интерфейс IDAPI обеспечивает преобразование своих вызовов в вызовы функций интерфейса ODBC. Для обращения к функциям IDAPI можно пользоваться ягыками запросов SQL (из программ) и QBE (в диалоговом режиме).