W Cat - SQL за 24 часа
IBM изначально создавала SQL для доступа к базам данных, размещенным на мэйнфреймах, с клиентских машин пользователей. Пользователи при этом связывались с мэйнфреймами по локальной сети. Позже SQL стал стандартным языком коммуникации пользователей с базами данных. Intranet, по сути, является миниатюрным аналогом Internet. Основным различием между ними является то, что intranet предна-шачлегся для использования внутри некоторой организации, a Internet открыта для доступа всем. Пользовательский (клиентский) интерфейс в intranet остается тем же, что и в модели клиент/сервер. Запросы SQL направляются базе данных сервером Web с использованием соответствующего языка (например, HTML).
Безопасность в рамках базы данных значительно выше, чем в Internet. Поэтому всегда используйте средства безопасности, предлагаемые вашим сервером базы данных.
Резюме
В ходе этого урока мы обсудили некоторые идеи, позволяющие распространить SQL и приложения баз данных в Internet. На сегодняшний день это оказывается весьма важным для тех компаний, которые стремятся оставаться конкурентоспособными в своем секторе рынка. Чтобы не отстать от остального мира, весьма выгодно - если не обязательно - организовать свое "присутствие" в World Wide Web. A чтобы такое "присутствие" организовать, необходимо разработать соответствующие приложения и перейти от систем клиент/сервер к серверу Web в Internet. При этом главным вопросом представления корпоративных данных в Web становится вопрос безопасности. Стратегия безопасности должна быть тщательно разработана и выполняться неукоснительно.
В главе обсуждались также методы доступа к удаленным базам данных по локальным сетям и через Internet. Каждый из этих методов для передачи запросов удаленной базе данных предполагает использование сетевых адаптеров и соответствующих протоколов. Кратко обсуждались использующие SQL приложения ряда производителей для работы в локальных сетях, сетях intranet и Internet. После проверки своих знаний с помощью приведенных ниже контрольных вопросов и упражнений вы будете готовы к последнему из уроков нашего с вами путешествия в страну SQL.
Вопросы и ответы
В чем разница между Internet и intranet?
Internet обеспечивает публичный доступ к информационным ресурсам посредством интерфейса Web. Intranet тоже использует интерфейс Web, но предполагает только внутренний доступ, например для служащих компании или для привилегированных клиентов.
Отличается ли база данных для приложения Web от базы данных в системе клиент/сервер?
Сама по себе база данных для приложения Web может ничем не отличаться от базы данных в системе клиент/сервер, но использование технологий Web накладывает некоторые дополнительные ограничения. Например, приложение Web для доступа к базе данных использует сервер Web и поэтому в рамках такого приложения конечные пользователи обычно не имеют возможности прямого доступа к базе данных.
Практикум
Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б. "Ответы"
Тесты
1. Может ли база данных на одном сервере быть доступной с другого сервера?
2. Что может использовать компания для того, чтобы распространять информацию среди своих служащих?
3. Как называется программное обеспечение, посредством которого осуществляется доступ к базам данных.
4. Можно ли внедрить SQL в языки программирования для Internet?
5. Как осуществляется доступ к удаленной базе данных в рамках приложения Web?
Упражнения
1. Войдите в Internet и ознакомьтесь с информационными страницами нескольких из представленных там компаний. Если ваша компания тоже имеет информационную страницу в Web, сравните ее с информационными страницами конкурентов. Ответьте для себя на следующие вопросы в отношении просмотренных страниц.
а. Открывается ли страница быстро или ее открытие тормозится наличием слишком большого числа графических изображений?
б. Интересно ли читать представленную на странице информацию?
в. Получили ли вы в результате чтения имеющейся на странице информации представление о предлагаемых компанией услугах и продуктах и о компании в целом?
г. Если на странице предлагается доступ к некоторой базе данных, то достаточно ли быстро осуществляется такой доступ?
д. Можно ли сделать вывод об использовании на данной странице Web каких-либо средств безопасности?
2. Если в вашей компании используется intranet, войдите в сеть и посмотрите, какая информация о компании там представлена. Доступна ли там какая-нибудь база данных? Если да, то кто является производителем соответствующей системы управления базами данных? Какого типа интерфейсные приложения предлагаются при этом конечному пользователю?
24-й час Расширения стандартного SQL
На этом уроке обсуждаются расширения стандарта ANSI SQL. Хотя большинство реализаций SQL в основном предлагают стандартные средства, многие производители предлагают также расширения стандартного SQL с целью различных усовершенствований
Основными на этом уроке будут следующие темы
• Разные реализации языка
• Различия между реализациями
• Соответствие стандарту ANSI SQL
• Интерактивные операторы SQL
• Использование переменных
• Использование параметров
Реализации SQL
Имеется целый ряд реализаций SQL, предлагаемых различными производителями. Перечислить здесь всех производителей систем управления базами данных возможности нет, поэтому мы рассмотрим только некоторые программные продукты, предлагаемые лидерами. Мы обсудим реализации SQL, предлагаемые Sybase, dBase, Microsoft SQL Server и Oracle. Кроме них достаточно популярными являются продукты фирм Borland, IBM, Informix, Progress, CA-Ingress и многих других.
Различия между реализациями
Хотя все реализации, о которых идет речь, предназначены для работы с реляционными базами данных, каждая из этих реализаций немного отличается от других. Эти различия вытекают из различий в дизайне продукта и различий в подходах к обработке данных ядром базы данных. Но в данной книге мы сосредоточимся на различиях в рамках SQL. Как и рекомендовано стандартом ANSI, все реализации в качестве языка взаимодействия с базой данных используют SQL. Но кроме стандартных средств SQL, предлагаются расширения SQL, специфичные для каждой из имеющихся реализаций.
Различия в SQL различных производителей возникают из-за стремления улучшить стандарт ANSI SQL с точки зрения простоты использования и эффективности. Внедрять усовершенствования и делать свои продукты более привлекательными для клиентов производителей заставляет конкуренция.
Теперь, когда вы знаете основы SQL, вам будет нетрудно разобраться в различиях SQL разных производителей. Другими словами, если вы можете использовать SQL в рамках реализации Sybase, для вас не составит большого труда использовать SQL и в Oracle. Кроме того, знание SQL различных производителей по крайней мере улучшит ваше резюме.
В следующих примерах сравнивается синтаксис операторов SELECT разных производителей со стандартом ANSI.
Стандарт ANSI предлагает следующий синтаксис оператора.
SELECT [DISTINCT ] [* | СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ ПОИСКА ]
GROUP BY [ ПСЕВДОНИМ_ТАБЛИЦЫ | СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ HAVING УСЛОВИЕ_ПОИСКА ]]
[{UNION | INTERSECT | EXCEPT}][ ALL ]
[ CORRESPONDING [ BY (СТОЛБЕЦ! [, СТОЛБЕЦ2 ]) ]
СПЕЦКФИКАЦИЯ_ЗАПРОСА | SELECT * FROM ТАБЛИЦА |
КОНСТРУКТОР_ТАБЛИЦЫ ]
[ORDER BY СПИСОК_СОРТИРОВКИ ]
SQLBase предлагает следующий синтаксис оператора.
SELECT [ ALL | DISTINCT ] СТОЛБЕЦ1 [, СТОЛВЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ_ПОИСКА ]
[ GROUP BY СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ HAVING УСЛОВИЕ_ ПОИСКА ]]
[ UNION [ ALL ] ]
[ ORDER BY СПИСОК_СОРТИРОВКИ ]
[ FOR UPDATE OF СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]]
Oracle предлагает следующий синтаксис оператора.
SELECT [ ALL | DISTINCT ] СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ_ПОИСКА ]
[[ START WITH УСЛОВИЕ_ПОИСКА ]
CONNECT BY УСЛОВИЕ_ПОИСКА ]
[ GROUP BY СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ HAVING УСЛОВИЕ_ПОИСКА ]]
[{UNION [ ALL ] ] INTERSECT | MINUS} СПЕЦИФИКАЦИЯ_ЗАПРОСА ]
[ ORDER BY СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[ NOWAIT ]
Informix предлагает следующий синтаксис оператора.
SELECT [ ALL | DISTINCT | UNIQUE ] СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
FROM ТАБЛИЦА1 [, ТАБЛИЦА2]
[ WHERE УСЛОВИЕ_ПОИСКА ]
[ GROUP BY {СТОЛБЕЦ1 [, СТОЛБЕЦ2 ] | INTEGER}
[ HAVING УСЛОВИЕ_ПОИСКА ]]
[ UNION СПЕЦИФИКАЦИЯ_ЗАПРОСА ]
[ ORDER BY СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]
[INTO TEMP TABLE [WITH NO LOG ]]
Как вы уже, наверное, заметили, синтаксис операторов по сути одинаков. Везде присутствуют ключевые слова SELECT, FROM, WHERE, GROUP BY, HAVING, UNION и ORDER BY. В каждом случае эти ключевые слова выполняют одни и те же задачи, но имеют различные опции в зависимости от реализации. Эти опции и называются усовершенствованиями.