Международный стандарт 1989 г

· Во многих частях имеет чрезвычайно общий характер и допускает очень широкое толкование

· Отсутствуют важные разделы (манипулирование схемой БД, динамический SQL, многое определяется в реализации)

· Наибольшие достижения (стандартизация синтаксиса и семантики операторов выборки и манипулирования данными, фиксация средств ограничений целостности БД:определение первичного и внешнего ключей отношений, проверочные ограничения целостности)

Международный стандарт 1992 г .(SQL2)

· Расширено манипулирование таблицами (Alter table, Drop table)

· Манипулирование схемой БД (Users, Tables, Views, Columns, Domains, Table_priveleges, Table_constraints, , , )

· Возможность управления доменами (Create domain имя char(25) . . .и при определении имен столбцов эти имена определяются через имена доменов)

· Новые типы данных (Date, Time, Datetime, . . .) и новые функции

· Управление транзакциями и сессиями (сессия - последовательность транзакций, в пределах которой сохраняются временные отношения)

· Подключение к БД

· Развитие динамического SQL

Стандарт SQL3

· Механизм триггеров (стандарт синтаксиса триггеров и процедур)

· Абстрактные типы данных

· Расширение модели транзакций (контрольные точки, многозвенные транзакций)

А зачем вообще нужны эти стандарты? Зачем их изобретают и почему надо изу­ чать их? Текст стандарта SQL 2 занимает 600 станиц сухого формального текста, это очень много, и кажется, что это просто происки разработчиков стандартов, а не то, что необходимо, рядовым разработчикам. Однако ни один серьезный разработчик, работающий с базами данных, не должен игнорировать стандарт, и для этого существуют весьма веские причины. Разработка любой информационной системы, ориентированной на технологию баз данных (а других информационных систем на настоящий момент и не бывает), является трудоем­ким процессом, занимающим несколько десятков и даже сотен человеко-месяцев. Следует отдавать себе отчет, что нельзя разработать сколько-нибудь серьезную систему за несколько дней. Кроме того, развитие вычислительной техники, сис­тем телекоммуникаций и программного обеспечения столь стремительно, что проект может устареть еще до момента внедрения. Но развивается не только вычислительная техника, изменяются и реальные объекты, поведение которых моделируется использованием как самой БД, так и процедур обработки инфор­мации в ней, то есть конкретных приложений, которые составляют реальное наполнение разрабатываемой информационной системы. Именно поэтому проект информационной системы должен быть рассчитан на расширяемость и переносимость на другие платформы. Большинство поставщиков аппаратуры и программного обеспечения следуют стратегии поддержки стандартов, в противном случае пользователи просто не будут их покупать. Однако каждый поставщик стремится улучшить свой продут введением дополнительных возможностей, не входящих в стандарт. Выбор разработчиков, следовательно, таков: ориентиро­ваться только на экзотические особенности данного продукта либо стараться в основном придерживаться стандарта. Во втором случае весь интеллектуаль­ный труд, вкладываемый в разработку, становится более защищенным, так как система приобретает свойства переносимости. И в случае появления более перспективной платформы проект, ориентированный в большей степени на стан­дарты, может быть легче перенесен на нее, чем тот, который в основном ориентировался на особенности конкретной платформы. Кроме того, стандарты — это верный ориентир для разработчиков, так как все поставщики СУБД в своих перспективных разработках обязательно следуют стандарту, и можно быть уве­ренным, что в конце концов стандарт будет реализован практически во всех перспективных СУБД. Так произошло со стандартом SQL 1, так происходит со стандартом SQL 2 и так будет происходить со стандартом SQL 3.

Для поставщиков СУБД стандарт — это путеводная звезда, которая гарантирует правильное направление работ. А вот эффективность реализации стандарта — это гарантия успеха.

SQL нельзя в полной мере отнести к традиционным языкам программирования, он не содержит традиционные операторы, управляющие ходом выполнения программы, операторы описания типов и многое другое, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Опера­ торы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, PL , COBOL и т. д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.

5.2 Достоинства и недостатки SQL

Достоинства:

· Повсеместная распространенность

· Быстрое обучение в простых случаях

· Связывание с различными языками программирования

· Поддержка ODBC и JDBC

· Фактор времени: научились хорошо реализовывать.

Недостатки:

· Несоответствие реляционной модели данных (наличие дубликатов, необязательность первичного ключа, возможность упорядочения результатов)

· Недостаточно продуманный механизм неопределенных значений

· Сложность формулировок и громоздкость.

Наши рекомендации