23-й час
Использование SQL в локальных и глобальных сетях

В ходе этого урока мы с вами поговорим о том как использовать SQL в \сю-виях реального предприятия ичи локачьной сети компании и как испочьзовать SQL в Internet

Основными на этом уроке будут следующие темы

• SQL на уровне предприятия
• Приложения прикладной и интерфейсной частей системы
• Удаленный доступ к базе данных
• SQL и Internet
• SQL и intranet

  SQL на уровне предприятия

В ходе предыдущего урока мы рассмотрели средства SQL, которые приоткрыли вам дверь в мир практического использования возможностей этого языка В ходе этого урока мы обсудим использование SQL в рамках реального предприятия, что предполагает, в частности, наличие приложений SQL, с помощью которых работники предприятия получают возможность использования базы данных в производственных целях Многие коммерческие предприятия имеют данные, доступ к которым предлагается пользователям вне компании — другим предприятиям, покупателям или производителям Например, предприятие может предлагать потенциальным покупателям доступ к дополнительной информации о продуктах предприятия в надежде увеличить сбыт Должны быть учтены и нужды служащих предприятия Например, доступной может быть служебная информация о графиках работы и отпусков, обучении персонала, политике компании и т п Подобная база данных может быть создана и сделана легко доступной для пользователей средствами SQL и Internet

  Прикладная часть

Сердцем любой базы данных является ее прикладная часть Именно там происходят главные события базы данных, оставаясь совершенно незаметными для пользователя Прикладная часть клиент-серверного приложения (back-end application) состоит из сервера базы данных, источников данных и соответствующего промежуточного программного обеспечения, используемого для подключения приложения к Web или удаленной базе данных по локальной сети.

Еще раз напомним, что к наиболее распространенным серверам баз данных относят Oracle, Informix, Sybase, Microsoft SQL Server и Borland InterBase Именно с сервера начинается разворачивание приложения баз данных либо на все предприятие в рамках локальной сети (LAN) или сети intranet предприятия, либо в Internet Разворачивание (porting) представляет собой процесс внедрения приложения в среду, доступную пользователям Сервер базы данных должен быть установлен на рабочем месте администратора базы данных, который, в свою очередь, должен понимать и производственные потребности предприятия, и требования самого приложения

Промежуточное программное обеспечение приложения состоит из сервера Web и средств, позволяющих подключить сервер Web к серверу базы данных Главной целью в данном случае является наличие в Web приложения, предоставляющего доступ к корпоративным данным

  Интерфейсная часть

Интерфейсная часть приложения (front-end application) — это та часть приложения, с которой имеет дело пользователь Интерфейсная часть приложения может быть коммерческим продуктом какой-нибудь компании, производящей программное обеспечение на продажу, либо продуктом, разработанным внутри предприятия с применением различных программных средств О таких средствах будет идти речь в следующих разделах.

До того, как на рынке сложилось имеющееся сегодня разнообразие приложений, предлагающих интерфейс пользователя базы данных, пользователю необходимо было уметь программировать на языках типа С HTML или любом другом из множества процедурных языков программирования, с помощью которых разрабатывались приложения для Web Языки типа ANSI С, COBOL, FORTRAN или Pascal использовались для разработки интерфейсной части внутри предприятия, и соответствующий интерфейс пользователя был, как правило, текстовым Сегодня большинство новых приложений интерфейсной части предлагают графический пользовательский интерфейс (GUI)

Интерфейсная часть приложения призвана обеспечить пользователю простоту доступа к базе данных и работы с ней Внутренние процессы программный код и происходящие в ней события должны быть незаметными для пользователя Интерфейсная часть приложения должна быть разработана для того чтобы по возможности избавить пользователя от необходимости теряться в догадках и интуитивно чувствовать систему в целом Новые технологии позволяют сделать приложения более понятными и простыми в применении что дает пользователю возможность сосредоточиться на решении своих конкретных задач повышая в конечном итоге эффективность своего труда.

Имеющиеся на сегодня средства разработки приложений достаточно просты в применении и объектно-ориентированны, что достигается использованием в них пиктограмм, возможностей перетаскивания объектов с помощью мыши, а также различных мастеров, автоматически генерирующих объекты с заданными свойствами. Среди наиболее популярных средств разработки Web-приложений следует упомянуть C++Builder, IntraBuilder фирмы Borland и Visual J++, C++ фирмы Microsoft. Для разработки программ, предназначенных для работы в рамках локальной сети предприятия, используют PowerBuilder фирмы Powersoft, Developer/2000 фирмы Oracle Corporation, Visual Basic фирмы Microsoft и Delphi фирмы Borland.

На рис. 23.1 представлена схема взаимозависимости прикладной и интерфейсной частей приложения баз данных. Прикладная часть располагается на сервере, там же размещается и сама база данных. Пользователями прикладной части являются разработчики базы данных, программисты, администраторы базы данных, системные администраторы и системные аналитики. Интерфейсная часть приложения размещается на машинах-клиентах, которыми обычно являются персональные компьютеры конечных пользователей. Интерфейсная часть приложения рассчитана на самую широкую аудиторию пользователей, включающую операторов ввода данных, бухгалтеров и т. д. Пользователь должен иметь возможность доступа к базе данных по сети—и такая сеть может быть как локальной (LAN), так и глобальной (WAN). Для предоставления пользователю такой возможности используется промежуточное программное обеспечение (например, драйвер ODBC).

Рис. 23.1. Приложение баз данных

  Удаленный доступ к базе данных

База данных может быть локальной, и тогда вы имеете возможность подключится к ней непосредственно. Но, как правило, пользователю требуется доступ к базе данных, которая находится на некотором удалении от его системы. Удаленная база данных — это некоторая база данных, не являющаяся локальной, т. е. расположенной на том сервере, к которому вы подключены в данный момент, и предполагающая для доступа к ней использование сети и определенных сетевых протоколов.

Доступ к удаленной базе данных можно осуществить несколькими способами. Говоря в общем, доступ к удаленной базе данных осуществляется с помощью Подключения к сети или Internet посредством использования промежуточного программного обеспечения (например, стандартных средств ODBC, обсуждению которых посвящен следующий раздел). На рис. 23.2 схематически показаны три сценария, по которым можно организовать доступ к удаленной базе данных.

На этом рисунке показана схема доступа к удаленной базе данных с локального сервера базы данных, локального интерфейсного приложения и главного локального сервера. Локальный сервер базы данных и главный локальный сервер часто оказываются одним и тем же объектом, поскольку база данных, как правило, размещается на главном локальном сервере. Но подключиться к удаленной базе данных с главного локального сервера можно и без подключения к локальной базе данных. Для конечного пользователя чаще всего предлагается подключение к удаленной базе данных средствами интерфейсного приложения. Во всех этих случаях используется передача запросов к базе данных по сети.

Рис. 23.2. Доступ к удаленной базе данных

  ODBC

Технология ODBC (Open Database Connectivity — открытый интерфейс доступа к базам данных) обеспечивает возможность доступа к удаленным базам данных с помощью подходящего драйвера. Драйвер ODBC используется интерфейсным приложением для получения доступа к прикладной части базы данных для взаимодействия с данными нижнего уровня. Для доступа к удаленной базе данных, кроме того, может понадобиться и сетевой драйвер. Приложение вызывает функции ODBC, а соответствующий драйвер обеспечивает загрузку драйвера ODBC. Драйвер ODBC обрабатывает вызов функции, пересылает запрос к базе данных и возвращает результат этого запроса. На сегодня ODBC является стандартом, используемым целым рядом продуктов, в частности, PowerBuilder, FoxPro, Visual C++, Visual Basic, Delphi, Microsoft Access и многими другими.

Как часть ODBC, любой производитель систем управления базами данных предлагает со своими базами данных программный интерфейс приложения (API). Для примера из таких предлагаемых продуктов можно отметить Open Call Interface (OCI) фирмы Oracle и SQLGateway или SQLRouter фирмы Centura.

  Другие интерфейсы доступа к данным

В дополнение к драйверу ODBC многие производители систем управления базами данных предлагают свое программное обеспечение, предназначенное для организации доступа к удаленным базам данных. Каждый из таких продуктов оказывается специфическим для системы управления базами данных конкретного производителя и, вообще говоря, не предполагает переносимости на другие типы серверов баз данных.

Oracle Corporation для организации доступа к удаленным базам данных предлагает свой продукт под именем Net8. Net8 можно использовать практически с любыми сетевыми протоколами, в частности, TCP/IP, OSI, SPX/IPX и многими другими. Кроме того, Net8 может работать под управлением почти любой из наиболее распространенных операционных систем.

Sybase Incorporated предлагает свой продукт под именем Open Client/C Developers Kit, поддерживающий продукты других производителей, в частности Net8 фирмы Oracle.

  Доступ к удаленным базам данных с помощью интерфейса Web

Доступ к удаленным базам данных посредством интерфейса Web подобен доступу к базам данных по локальной сети Главное отличие состоит в том, что в Web все запросы к базе данных направляются через Web-сервер.

Из рис. 23.3 видно, что конечный пользователь инициирует доступ к удаленной базе данных с помощью броузера Web. Броузер Web используется для связывания с заданным URL или адресом IP в Internet, соответствующим нужному серверу Web. Сервер Web, проверив имя и пароль пользователя, пересылает пользовательский запрос базе данных, которая, в свою очередь, тоже может потребовать проверки имени и пароля. Затем сервер базы данных вернет результаты запроса серверу Web, а последний отобразит эти результаты в окне пользовательского броузера Web. Несанкционированный доступ к конкретному серверу может пресекаться с помощью брандмауэра (firewall).

Рис. 23.3. Доступ к удаленной базе данных через Web

Брандмауэр (firewall) — это аппаратно-программная система межсетевой защиты от несанкционированного доступа к серверу. Для зашиты от несанкционированного доступа к серверу может использоваться как одна, так и несколько таких систем. Точно также одна или несколько систем защиты могут использоваться для управления доступом к серверу базы данных и к самой базе данных.

При пересылке информации по Web следует принять все возможные меры безопасности на всех уровнях. К таким уровням можно отнести сервер Web, главный локальный сервер и удаленную базу данных Частные данные, такие как идентификационные номера служащих, всегда должны быть защищены от доступа к ним случайных лиц и не должны распространяться в Web.

  SQL и Internet

SQL можно использовать в рамках приложений, создаваемых средствами С или COBOL. Точно так же SQL можно использовать и в Internet-приложениях, создаваемых средствами таких языков программирования, как Java. Текст HTML тоже можно транслировать в запрос SQL, чтобы потом с помощью интерфейсного приложения Web переслать этот запрос удаленной базе данных. Возвращенный базой данных результат затем транслируется обратно в текст HTML и отображается броузером Web на экране пользователя, пославшего запрос. В следующих разделах использование SQL в Internet обсуждается подробнее.

  Предоставление доступа к данным пользователям во всем мире

С изобретением и распространением Internet по всему миру данные стали доступными покупателям и производителям в любой стране. Такие данные обычно бывают доступными только для чтения с помощью соответствующего интерфейсного приложения.

Предназначенные для покупателей данные могут состоять из общей информации для покупателей, информации о конкретных продуктах, бланков заказов, информации о текущих и выполненных ранее заказах и т.д. Частная информация, например, информация о корпоративной стратегии и о служащих компании доступной быть не должна.

Наличие информационной странички в Web стало почти обязательным для компаний, стремящихся успешно конкурировать с другими в своем бизнесе. Страничка Web оказывается весьма эффективным средством информирования большого числа потенциальных покупателей об услугах, продуктах и других аспектах деятельности компании, не требуя при этом чрезмерных затрат.

  Предоставление доступа к данным служащим и привилегированным клиентам

С помощью Internet или сети intranet компании базу данных можно сделать доступной для служащих этой компании или ее клиентов. Использование технологий Internet оказывается весьма удобным для информирования служащих о политике компании, преимуществах работы в ней, обучающих программах и т. п.

  Интерфейсные приложения Web, использующие SQL

Имеется целый ряд приложений, обеспечивающих доступ к базам данных. Многие из таких приложений предлагают графический интерфейс пользователя, так что пользователю даже нет необходимости понимать SQL, чтобы составить запрос к базе данных. В таких приложениях пользователю предлагается указывать и щелкать мышью на объектах, представляющих таблицы, манипулировать данными этих объектов, задавать критерии отбора возвращаемых данных и т. д. Такие приложения часто разрабатываются и настраиваются в полном соответствии с конкретными требованиями конкретной компании.

  SQL и intranet

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, войдите в сеть и посмотрите, какая информация о компании там представлена. Доступна ли там какая-нибудь база данных? Если да, то кто является производителем соответствующей системы управления базами данных? Какого типа интерфейсные приложения предлагаются при этом конечному пользователю?