
- •Введение
- •1. Основные понятия архитектуры клиент-сервер
- •1.1. Преимущества архитектуры клиент-сервер
- •1.2. Основные понятия и компоненты архитектуры
- •1.3. Звенья
- •1.4. Серверы баз данных
- •2. Основные понятия, объекты и язык т-sql субд ms sql Server 2005
- •2.1. Состав и назначение баз данных в ms sql Server
- •2.2. Основные этапы работы с sql Server
- •2.3. Используемые типы данных в sql Server
- •2.4. Введение в Transact-sql (t-sql)
- •2.4.1. Выражения
- •2.4.2. Переменные
- •2.4.3. Преобразование типов
- •2.4.4. Управляющие конструкции т-sql
- •2.4.5. Описание примера базы данных
- •2.4.6. Управление данными (язык sql)
- •2.4.6.1. Типы команд sql
- •2.4.6.2. Извлечение данных
- •2.5. Представления
- •2.5.1. Создание и удаление представлений
- •2.5.2. Обновление данных в представлениях
- •2.5.3. Преимущества и недостатки представлений.
- •Независимость от данных
- •2.6. Хранимые процедуры
- •2.6.1. Понятие хранимой процедуры
- •2.6.2. Типы хранимых процедур
- •2.6.3. Создание, изменение и удаление хранимых процедур
- •2.6.4. Выполнение хранимой процедуры
- •3. Использование ms sql Server Management Studio для работы с объектами базы данных
- •3.1. Описание учебной базы данных «Realizations of goods» (Реализация товаров)
- •3.2. Создание и сохранение базы данных
- •3.3. Создание и работа с представлениями (запросы)
- •3.4. Создание и работа с хранимыми процедурами
- •4. Создание клиент-серверного приложения в Visual Basic
- •4.1. Элемент управления ms ado data Control
- •4.2. Элемент управления ms dataGrid Control
- •4.3. Клиент-серверное приложение «Реализация товаров»
- •4.3.1. Постановка задачи
- •4.3.2. Состав пользовательского интерфейса и программная реализация
- •4.3.3. Графическое формирование значений свойств элементов Adodc и DataGrid
- •5. Практические задания для самостоятельной работы
- •Вариант 1. «Жильё»
- •Вариант 2. «Жители»
- •Вариант 3. «Население»
- •Вариант 4. «Вакансии»
- •Вариант 5. «Поставщики-детали»
- •Литература
1.3. Звенья
В конструкции систем клиент-сервер используется нескольких звеньев.
Традиционно при разработке систем клиент-сервер для разделения вычислительной нагрузки используются только два звена - клиент и сервер. Эта модель называется двухзвенной моделью (two-tier model). Хотя и клиент, и сервер могут находиться на одном и том же компьютере, большинство систем этой архитектуры запускают клиентский процесс на одном компьютере, а процесс-сервер на другом, используя для обмена информацией сетевые связи. В этой модели один процесс может работать независимо от другого, выполнять определенные задания и разделять вычислительную нагрузку. Как правило, в двухзвенной системе большую часть логики программы разработчики помещают на системе клиента, используя сервер только для обслуживания данных. Этот тип конфигурации известен также как модель "толстый клиент - тонкий сервер".
Двухзвенные программы клиент-сервер просты в понимании, построении и обслуживании. Большинство систем "клиент-сервер" построены с использованием этой модели, но двухзвенные модели способны обеспечить работу лишь ограниченного числа клиентов. Поэтому эту модель невозможно масштабировать до уровня предприятия. Иными словами, двухзвенная архитектура не может обеспечивать работу тысяч пользователей с программами, установленными на предприятии, и в результате для этих целей применяются большие ЭВМ.
Для того чтобы обеспечить работу при больших вычислительных нагрузках, применяются трех- или многозвенные архитектуры. Это означает, что программа клиент- сервер распределяется по дополнительным процессорам или звеньям, обеспечивающим дополнительную вычислительную мощность.
Трехзвенная модель (three-tier model) - система "клиент-сервер", в которой промежуточное звено (компьютер) помещается между компьютером-клиентом и компьютером-сервером двухзвенной модели. Промежуточное звено, обычно работающее как монитор обработки транзакций (TP) или брокер объектных запросов, предоставляет другое место для выполнения программы. C помощью трехзвенной модели разработчики могут обеспечивать работу намного большего числа клиентов, чем при использовании двухзвенной модели.
При создании многозвенных программ разработчики используют TP-мониторы, средства разделения прикладных программ или распределенные объекты. За повышение производительности при использовании многозвенной архитектуры клиент-сервер разработчикам приходится расплачиваться дополнительными сложностями и большими затратами времени при ее создании и множеством проблем, связанных с интеграцией.
1.4. Серверы баз данных
Сервер баз данных (database server) - система, которая получает запросы от программ-клиентов по вычислительной сети и передает в ответ запрашиваемые данные (набор ответов). Каждый сервер баз данных состоит из компьютера, операционной системы и программного обеспечения сервера СУБД.
Серверы реляционных и нереляционных баз данных [8] могут быть различного вида и масштабов. Большинство программ-серверов баз данных – такие, как Oracle7, MS SQL Server и Sybase System 11 - выполняются на выделенных машинах. При этом серверы баз данных работают на разнообразных процессорах и в различных операционных средах. Oracle, например, работает на большинстве RISC- и CISC-ориентированных Unix-системах, включая HP/UX фирмы Hewlett-Packard и Solaris компании Sun. Кроме того, Oracle выполняется на серверах, использующих процессоры Intel под управлением SCO Unix и Netware компании Novell.
Серверы реляционных баз данных (известные также как SQL-серверы или SQL-процессоры) составляют большинство применяемых в настоящее время серверов. Однако, в нескольких секторах рынка их догоняют объектно-ориентированные и многомерные серверы баз данных.
Серверы объектно-ориентированных баз данных, такие как GemStone компании GemStone Systems, хранят информацию в форме объектов, что больше подходит для средств разработки программ-клиентов, которые работают с чисто объектной моделью. Более того, в объектно-ориентированных СУБД лучше, чем в реляционных, организовано хранение сложных структур данных.
Серверы многомерных баз данных, такие как Essbase Analysis Server фирмы Arbor Software Corp., обеспечивают более понятное конечным пользователям представление данных и обладают новыми средствами оперативного анализа (OLAP).
Функции сервера.
Серверы баз данных занимаются не только обслуживанием данных. В них предусмотрены также механизмы блокировок и элементы управления многопользовательским доступом, которые обеспечивают защиту данных от коллизий параллельного доступа. Кроме этого, серверу баз данных приходится ограждать данные от несанкционированного доступа, оптимизировать запросы к базе данных, обеспечивать кэширование и предоставлять место для размещения словаря данных.
Важными особенностями сервера является также его способность обеспечивать целостность ссылочных данных и обоюдный контроль завершения транзакции. Ссылочная целостность данных (referential integrity) - это механизм, обеспечивающий каждому внешнему ключу соответствующий первичный ключ. Обоюдный контроль завершения транзакций (two-phase commit) - гарантия того, что данные не будут повреждены даже при аппаратном сбое.
С помощью хранимых процедур, триггеров и правил разработчики могут составить программу непосредственно самого сервера баз данных и, таким образом, появляется еще одно место для размещения логики программы.
Хранимые процедуры (stored procedures) - это группа предложений на языке SQL и процедурная логика, которые разработчики могут компилировать и хранить на сервере баз данных в качестве объектов.
Триггеры (triggers) - это хранимые процедуры, которые активизируются автоматически, как только серверу баз данных встречается связанное с данными событие.
Правило (rule) - это специальный тип триггера, который проверяет данные до внесения их в базу данных.
Большая часть имеющихся на данный момент стандартных хранимых процедур, триггеров и правил обладает весьма узкой специализацией и отличающимися возможностями СУБД. Например, SQL Server способен запускать только один триггер для операции вставки, в то время как CA-OpenIngres обеспечивает работу нескольких триггеров. Более того, расширения процедур SQL у разных изготовителей разные.
Программы-клиенты способны выполнять хранимые процедуры и триггеры (другой вид хранимых процедур) путем посылки сообщений серверу баз данных. С использованием механизмов хранимых процедур, триггеров и правил можно строить тип конфигурации клиент-сервер, известный как модель "тонкий клиент - толстый сервер".