Международный стандарт 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
· Фактор времени: научились хорошо реализовывать.
Недостатки:
· Несоответствие реляционной модели данных (наличие дубликатов, необязательность первичного ключа, возможность упорядочения результатов)
· Недостаточно продуманный механизм неопределенных значений
· Сложность формулировок и громоздкость.