Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Организация Web-доступа к базам данных с использованием SQL-запросов

там   (International    Standards
Organization—  ISO).  Однако  существуют  и  другие  важные  стандарты  SQL,
включая SQL, реализованный в системе DB2 компании  IBM,  и  стандарт  X/OPEN
для SQL в среде  UNIX.
   Работа над официальным стандартом SQL началась в 1982 году,  когда  ANSI
поставил перед своим комитетом  ХЗН2  задачу  по  созданию  стандарта  языка
реляционных  баз  данных.  Вначале  в   комитете   обсуждались   достоинства
различных предложенных языков. Однако поскольку к тому времени SQL уже  стал
фактическим стандартом, комитет ХЗН2 остановил свой выбор на нем  и  занялся
стандартизацией SQL.
   Разработанный в результате стандарт в большой  степени  был  основан  на
диалекте SQL системы DB2, хотя и содержал в себе  ряд  существенных  отличий
от этого диалекта. После нескольких доработок,  в  1986  году  стандарт  был
официально утвержден как стандарт ANSI номер Х3.135,  а  в  1987  году  —  в
качестве стандарта ISO. Затем стандарт ANSI/ISO  был  принят  правительством
США как федеральный стандарт США по обработке  информации  (FIPS  —  Federal
Information   Processing    Standard).    Этот    стандарт,    незначительно
пересмотренный  в  1989  году,  обычно  называют  стандартом  “SQL-89”,  или
“SQLI”.  Когда  в  данном  реферате  я  упоминаю  «стандарт  ANSI/ISO”,   то
подразумеваю SQLI, который в настоящее  время  лежит  в  основе  большинства
коммерческих продуктов.
   Многие из членов комитетов по стандартизации  ANSI  и  ISO  представляли
фирмы-поставщики  различных  СУБД,  в  каждой  из  которых  был   реализован
собственный вариант SQL. Как и диалекты человеческого  языка,  диалекты  SQL
были в основном похожи друг на друга,  однако  несовместимы  в  деталях.  Во
многих  случаях  комитет  просто   обошел   существующие   различия   и   не
стандартизировал некоторые части языка, определив, что  они  реализуются  по
усмотрению  разработчика.  Этот  подход  позволил  объявить  большое   число
реализаций SQL  совместимыми  со  стандартом,  однако  сделал  сам  стандарт
относительно слабым.
   Чтобы заполнить эти пробелы, комитет ANSI продолжил свою работу и создал
проект нового, более жесткого стандарта SQL2. В отличие  от  стандарта  1989
года, проект SQL2 предусматривал возможности, выходящие  за  рамки  таковых,
уже существующих в реальных коммерческих продуктах. А для следующего за  ним
стандарта SQL3 были предложены еще более глубокие  изменения.  В  результате
предложенные стандарты SQL2 и  SQL3  оказались  более  противоречивыми,  чем
исходный стандарт. Стандарт SQL2 прошел процесс утверждения  в  ANSI  и  был
окончательно принят в октябре 1992 года. В то  время,  как  первый  стандарт
1986 года занимает не более ста страниц, официальный стандарт SQL2  содержит
около шестисот.
   Вопреки  стандарту  SQL2,  во  всех  существующих  на  сегодняшний  день
коммерческих продуктах поддерживаются собственные диалекты SQL. Более  того,
поставщики СУБД включают в  свои  продукты  новые  возможности  и  расширяют
собственные диалекты SQL, чем еще больше отдаляют их  от  стандарта.  Однако
ядро  SQL  стандартизировано  довольно  жестко.  Там,  где  это  можно  было
сделать,  не  ущемляя  интересы  клиентов,  поставщики  СУБД  привели   свои
продукты в  соответствие  со  стандартом  SQL-89,  то  же  самое  постепенно
произошло и с SQL2.
   Хотя стандарт ANSI/ISO наиболее широко  распространен,  он  не  является
единственным стандартом SQL. Европейская  группа  поставщиков  X/OPEN  также
приняла SQL в качестве одного из своих  стандартов  для  «среды  переносимых
приложений» на основе UNIX. Стандарты группы X/OPEN играют  важную  роль  на
европейском   компьютерном   рынке,   где   основной   проблемой    является
переносимость   приложений   между   компьютерными    системами    различных
производителей.  К  несчастью,  стандарт  X/OPEN  отличается  от   стандарта
ANSI/ISO.
   Кроме того, компания  IBM  включила  SQL  в  свою  спецификацию  Systems
Application Architecture (архитектура прикладных систем)  и  пообещала,  что
все ее продукты, очевидно,  будут  переведены  на  этот  диалект  SQL.  Хотя
данная спецификация и не оправдала  надежд  на  унификацию  линии  продуктов
компании IBM, движение в сторону унификации SQL в IBM продолжается.  Система
DB2 остается основной СУБД компании IBM  для  мэйнфреймов.  Однако  компания
выпустила реализацию DB2 и для OS/2 (собственной  операционной  системы  для
персональных компьютеров), и для линии серверов и рабочих  станций  RS/6000,
работающих под управлением  UNIX.  Таким  образом,  диалект  DB2  языка  SQL
является мощным стандартом де-факто.
   В  технологии  баз  данных  существует  важная   область,   которую   не
затрагивают  официальные  стандарты.  Это  способность  к  взаимодействию  с
другими базами данных  —  методы,  с  помощью  которых  различные  БД  могут
обмениваться информацией (как правило,  по  сети).  В  1989  году  несколько
поставщиков сформировали консорциум SQL Access Group специально для  решения
этой проблемы. В 1991 году консорциум опубликовал спецификацию  RDA  (Remote
Database Access — удаленный доступ к базам данных). Эта  спецификация  тесно
связана с протоколами OSI, которые не смогли завоевать  широкого  признания,
поэтому  она  оказывает  на  рынок  незначительное   влияние.   Прозрачность
взаимодействия между различными базами данных остается иллюзорной мечтой.
   Тем не менее, второй стандарт от SQL Access Group имеет на рынке больший
вес. В результате настойчивых требований компании Microsoft, консорциум  SQL
Access Group включил в стандарт SQL интерфейс  вызовов  функций.  Полученная
спецификация CLI (Call Level Interface), основанная на разработках  компании
Microsoft, увидела свет в 1992  году.  В  этом  же  году  была  опубликована
собственная спецификация ODBC (Open Database Connectivity  —  взаимодействие
с открытыми базами данных) компании Microsoft, основанная на стандарте  CLI.
Благодаря рыночной силе Microsoft  и  благословению,  полученному  «открытым
стандартом» от SQL Access  Group,  ODBC  оказался  стандартом  де-факто  для
интерфейсов доступа к базам данных на персональных компьютерах. Весной  1993
года  компании  Apple  и  Microsoft  объявили  о   соглашении   относительно
поддержки ODBC в MacOS  и  Windows,  что  закрепило  за  этой  спецификацией
статус стандарта в обеих популярных средах  с  графическим  пользовательским
интерфейсом.
   Появление стандарта SQL вызвало довольно много восторженных заявлений  о
переносимости SQL и использующих его приложений. На  самом  деле  пробелы  в
стандарте SQL-89 и различия между существующими  диалектами  SQL  достаточно
значительны,  и  при  переводе  приложения  под  другую  СУБД   его   всегда
приходится модифицировать. Эти отличия, большинство из которых  устранено  в
стандарте SQL2, включают в себя:
   Коды ошибок. В стандарте SQL-89 не определены коды,  которые  возвращают
операторы  SQL  при  возникновении  ошибок,  и  в  каждой  из   коммерческих
реализаций используется собственный набор  таких  кодов.  В  стандарте  SQL2
определены стандартные коды ошибок.
   Типы данных.  В  стандарте  SQL-89  определен  минимальный  набор  типов
данных, однако, в нем отсутствуют некоторые из наиболее  распространенных  и
полезных типов, например символьные строки переменной длины, дата  и  время,
а также денежные единицы.  В  стандарте  SQL2  упомянуты  эти  типы  данных,
однако,  отсутствуют  «новые»  типы  данных,   такие   как   графические   и
мультимедийные объекты.
   Системные таблицы. В стандарте SQL-89 умалчивается о системных таблицах,
в которых содержится информация  о  структуре  самой  базы  данных.  Поэтому
каждый поставщик создавал собственные  системные  таблицы,  и  их  структура
отличается даже в четырех реализациях SQL компании  IBM.  Системные  таблицы
стандартизированы в SQL2.
   Интерактивный  SQL.  В  стандарте  определен  только  программный   SQL,
используемый прикладной  программой,  но  не  интерактивный  SQL.  Например,
оператор select, предназначенный для выполнения запросов  к  базе  данных  в
интерактивном режиме, в стандарте отсутствует.
   Программный интерфейс. В первом стандарте определен  абстрактный  способ
использования   SQL   в   программах,    написанных    на    таких    языках
программирования, как COBOL, FORTRAN и другие. Этот способ  не  используется
ни в одном коммерческом продукте, а в существующих  программных  интерфейсах
имеются  значительные  отличия.  В  стандарте   SQL2   определен   интерфейс
встроенного SQL для популярных  языков  программирования,  но  не  интерфейс
вызова функций.
   Динамический  SQL.  В  стандарте  SQL-89  не   описаны   элементы   SQL,
необходимые  для  разработки  приложений  общего   назначения,   таких   как
генераторы отчетов и программы создания и выполнения  запросов.  Однако  эти
элементы, известные под названием динамический SQL, имеются  почти  во  всех
СУБД и в различных системах значительно отличаются. В SQL2  входит  стандарт
динамического SQL.
   Семантические  отличия.  Поскольку  некоторые  элементы   определены   в
стандартах как зависящие от реализации, может возникнуть ситуация,  когда  в
результате выполнения одного и того  же  запроса  в  двух  совместимых  СУБД
будут  получены  два  различных  набора  результатов.  Отличия   результатов
обусловлены  различиями  в  обработке  значений  null,  разными  агрегатными
функциями и несовпадением процедур удаления повторяющихся строк.
   Последовательность  сравнения.  В  стандарте   SQL-89   не   упоминаются
последовательности  сравнения  (сортировки)  символов,  хранящихся  в   базе
данных. Результаты запроса с сортировкой  будут  отличаться  при  выполнении
этого  запроса  на  персональном  компьютере  (с  кодировкой  ASCII)  и   на
мэйнфрейме (с кодировкой EBCDIC).  Стандарт  SQL2 
12345След.
скачать работу

Организация Web-доступа к базам данных с использованием SQL-запросов

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ