Категория: Windows: Торговля
Во многих компаниях работа с клиентами занимает не маловажную ступень в функционировании предприятия. Для проведения оптимизации маркетинга в вашем учреждении мы предлагаем вам уникальную по своей многофункциональности систему управления взаимоотношениями с клиентами.
В имидже современного предприятия большое значение имеет форма ведения документации и учета. Программа контрагент помогает легко и быстро находить любую информацию по клиентам. Программа для учета клиентов помогает контролировать все контакты с клиентом и сохраняет данные по переписки. Система управления клиентами настраивается по требованиям вашего бизнеса. В электронной системе учета легче хранить и искать информацию. Система учета клиентов имеет разграничения доступа пользователей к различным программным модулям, т.е.каждый сотрудник видит только ту информацию, которая требуется ему для работы и входит в его зону ответственности. Программа учета клиентов бесплатно скачать можно в качесте демо-версии, обратившись к нам с соответствующим запросом по электронной почте. Все ваши пожелания будут учтены при индивидуальной разработке системы учета для вашего учреждения, что позволит использовать максимально удобную программу вам в работе.
Программой контроля и управления могут пользоваться:
Посмотрев следующее видео, можно быстро ознакомиться с возможностями программы УСУ - Универсальной Системы Учета. Если Вы не видите загруженное на YouTube видео, обязательно напишите нам, мы найдем другой способ показать демонстрационный ролик!
Возможности контроля и управления учетом клиентовДалее представлен краткий перечень возможностей программы Универсальная Система Учета. В зависимости от конфигурации разработанного программного обеспечения список возможностей может меняться.
Ниже располагаются ссылки для загрузки. Скачать бесплатно можно презентацию программного обеспечения в формате PowerPoint и демонстрационную версию. Причем, демо-версия имеет определенные ограничения: по времени использования и функционалу.
Презентация программыДемо-версия
Чтобы приобрести данную программу, достаточно позвонить нам по указанным в контактных данных телефонам или скайпу, либо просто написать письмо. Наши специалисты согласуют с Вами подходящую конфигурацию, подготовят договор и счет на оплату.
Для успешных продаж, для коммерчески выгодного функционирования бизнеса, безусловно, необходимо ведение полноценной клиентской базы данных, содержащей информацию по всем клиентам компании: бывшим, существующим, потенциальным, всем контрагентам, с которыми компания контактирует, так или иначе. Клиентская база данных - не просто незаменимый источник информации, полезной для работы отделов продаж или проведения эффективных рекламных кампаний. Правильно сформированная и структурированная база является важнейшим активом компании в современных жестких конкурентных условиях.
После формирования клиентской базы (обычно через участие в специализированных выставках, деловых мероприятиях и путем применения маркетинговых инструментов и технологий) встает вопрос упорядочивания полученных контактов. На протяжении многих лет популярными инструментами для этого были бумажные справочники или сводные Excel-таблицы. Естественно, при сегодняшнем уровне развития технологий, ведение клиентской базы с их помощью - это не просто анахронизм, а одна из причин снижения конкурентоспособности компании. Устаревшие способы ведения клиентской базы приводят к потерям важной информации, на поиск необходимых данных уходит время, медленно проводится и описание сделок, и анализ, и составление отчетности.
Автоматизированное ведение базы клиентов
Сегодня компаниям, которые хотят идти в ногу со временем и наладить безупречные рабочие процессы, доступно специальное программное обеспечение для ведения клиентской базы - система управления взаимоотношениями с клиентами - CRM (от англ. «Customer Relationship Management»). CRM призвана значительно упростить учет и обслуживание всех клиентов компании посредством автоматизации работы с клиентской информацией.
Теперь сохранить лиды с выставки, встречи или бизнес-завтрака можно за короткое время и без приезда в офис. CRM база данных клиентов онлайн доступна из любого места с любого устройства.
Добавляйте сделки сразу при создании контакта. Создавайте и закрывайте задачи по сделке, шаг за шагом приближаясь к продаже.
Анализируйте своих клиентовCRM программа – это клиентская база данных со встроенной аналитикой. Сегментируйте клиентов по тегам и анализируйте эффективность промо кампаний. Адресуйте заказчикам разные предложения, исходя из имеющихся данных.
CRM база – золотой актив, который принесет многократную прибыль, если с ним регулярно работать. Для повторных продаж необходимо знать, что уже продавали клиенту и с чем можно к нему «зайти».
Повышайте продажи и качество клиентского сервисаУдобная CRM база для клиентов сэкономит ваше время на лидогенерацию благодаря интеграции с сервисами email-, sms-рассылок и ip-телефонии. Также amoCRM поможет сохранить и обработать лиды.
Создавайте приятное впечатление у клиентов, учитывая их предпочтения с помощью записей в CRM. Повышайте качество обслуживания путем контроля выполнения задач и записей разговоров с клиентами.
1) Спроектировать базу данных (БД) согласно варианту задания.
2) Написать запросы SQL на создание всех спроектированных таблиц.
3) С помощью 2-х запросов SQL изменить структуру двух таблиц (например, добавить или удалить какой-либо атрибут), показать результаты изменения.
4) Внести данные в таблицы в режиме Таблица -> Открыть (не менее 10 кортежей в каждой таблице).
5) Создайте запросы SQL, которые будут использоваться для манипулирования данными:
7) Сформулировать 2 подзапроса (однотабличный и многотабличный), создайте их с помощью языка SQL и покажите результаты их выполнения.
8) Сформулировать 2 многотабличных запроса, создать их на SQL и показать результаты их выполнения.
Проектирование базы данныхРассмотрим основное отношение, соответствующее базе данных "Сведения о клиентах и заказах".
Код клиента, Название, Имя, Фамилия, Адрес счета, Город, Регион, Индекс, Страна, Должность, Телефон, Факс, Сумма долга, Код заказа, Код клиента, Код сотрудника, Номер заказа, Дата заказа, Модель, Серийный номер, Описание, Дата завершения, Ставка налога.
Данное отношение находится в первой нормальной форме, поскольку все его атрибуты являются неделимыми.
Руководитель IT-отдела
консалтинговой компании "ТРИЗ-ШАНС" (Санкт-Петербург),
кандидат физико-математических наук
Данный материал подготовлен в формате Доклада-исследования и преследует 2 цели: с одной стороны - рассказать о нашей работе над компьютерной программой по взаимодействию тренингово-консалтинговых компаний с их Клиентами, а с другой - получить ответы уважаемых Специалистов на вопросы о том, что ещё нужно учесть в создаваемой программе?… В текст Доклада встроены формы для Ваших ответов.
1. Тенденции-2008
1.1. На сегодняшний день одна из наиболее характерных тенденций в маркетинговых коммуникациях на развитых рынках - это смещение акцента с привлечения новых Клиентов на удержание уже имеющихся. Следствие этой тенденции - индивидуализация взаимодействия с Клиентами.
ПРИМЕР-1. "Сегодня развитые российские организации (прошедшие фазы экспансии и минимизации издержек) уже ощущают потребность в обеспечении наценки выше среднерыночной и лояльности за счет индивидуализации Клиентских отношений. И хотя задача опережающего наращивания Клиентской базы и завоевания доли рынка не снята с повестки дня, необходимо "смещать фокус" с операций на собственно продажи и обслуживание, то есть в сторону CRM (Customer Relationship Management - управление взаимоотношениями с Клиентами)".
Павлов А. Рост: и благо, и беда, журнал "Менеджмент роста", 2008 г. N 1-2, с. 10.
ПРИМЕР-2. "В сетях потребители, которые потребляют много, платят больше. Джеймс Уордер Паттен так характеризует эту ситуацию в пулах: "Верные потребители тратят в тринадцать раз больше, чем случайные в ресторанах, в двенадцать раз больше в авиакомпаниях и в пять раз больше в гостиничном бизнесе".
Молино П. Технологии CRM, М. "Фаир-пресс", 2004 г. с. 92.
Чтобы удержать Клиента, сделать его лояльным, с ним нужно работать более точно, прицельно. Это означает, что компания должна больше знать о каждом своем Клиенте. При этом:
"Информация должна принадлежать всей организации и никому в отдельности (отчуждение от носителя)".
Павлов А. Рост: и благо, и беда, журнал "Менеджмент роста", 2008 г. N 1-2, с. 10.
Если детальной информацией о Клиенте в компании владеет только конкретный менеджер и продажи базируются на личных "доверительных отношениях", то с уходом данного менеджера Клиент будет потерян… А реалии современного бизнеса таковы, что любой менеджер рано или поздно уходит.
1.2. С другой стороны, если количество Клиентов измеряется хотя бы десятками, то нужна технология:
Чтобы решить названную проблему, многие руководители отправляются на поиски совершенного Сотрудника, но "за ту зарплату, которую мы можем платить ". Через некоторое время - часто довольно продолжительное - выясняется, что таких Сотрудников "в ближнем космосе" не существует…
И в этот момент может прийти понимание: хороша та Технология, которая - вопреки утверждениям тренинговых компаний - не повышает, а снижает требования к квалификации Сотрудников. См. подробнее: Викентьев И.Л. Бизнес-процесс.RU: 5 = 2 = 0
2. CRM-системы
На столкновении указанных выше тенденций индивидуализации и автоматизации родились так называемые CRM-системы, цель которых:Проанализировав различные CRM-системы, а также литературные источники по этой теме, мы можем назвать несколько ошибок, допускаемых их разработчиками.
Ошибка-1. Программисты детальнейшим образом описывают абсолютно все действия идеальных менеджеров компании так, как это удобно им (программистам), а не так, как это было бы удобно несовершенным менеджерам… При внедрении CRM-систем, которое порой длится месяцами, менеджеры компании успешно саботируют процесс "внедрения" новой технологии…
Ошибка-2. Абсолютно понятно желание софтверных компаний заработать, но - как известно - не все способы хороши для заработка. Известны случаи, когда зарубежные CRM-системы были столь масштабны и их внедрение было столь сложным и трудоемким, что весь проект обходился в сотни миллионов долларов (!) и годы "внедрений"… Понятно, что в больших и громоздких системах всегда есть ошибки, и их отладка может длиться неограниченно долго.
4. Наш подход
Имея успешный опыт разработки различных программных продуктов для бизнеса . мы пошли следующим путем:4.1. Подавляющее большинство тренингово-консалтинговых компаний - это небольшие компании, которые, как правило, включают не более пары десятков штатных Сотрудников (другое дело, что по Договору с этими компаниями могут работать десятки внештатников, а число Клиентов исчисляться тысячами и десятками тысяч).
Сколько Клиентов проходит через Вашу компанию в год?
5000…10000
больше 10000
4.2. Зачастую менеджером, занимающимся подготовкой конкретного мероприятия, является начинающий Сотрудник, иногда - подрабатывающий студент, а в небольших компаниях этим может заниматься и сам тренер-консультант.
Если речь идет о начинающем Сотруднике, ожидать от него качественной работы наивно…
Когда речь идет о десятках и сотнях мелких операций. ожидать качественной работы даже от опытного Сотрудника неразумно…
4.3. Часто подобные компании ведут списки своих Клиентов либо в таблицах Microsoft Excel, либо вообще в Word… Иногда используются "самописные" базы данных, в которых хорошо разбирается только программист, их написавший.
Как хранится информация о Клиентах в Вашей компании?
Таблицы Microsoft Excel
Таблицы в документах Microsoft Word
Базы данных Microsoft Access
Написанное на заказ ПО
Иное ПО. Укажите:
Сколько сотрудников Вашей Компании должны иметь доступ к этой информации? Укажите количество:
Так как мы регулярно проводим конференции для тренеров, бизнес-консультантов, маркетологов, рекламщиков, специалистов по PR и т.д. перечисленные проблемы хорошо нам знакомы.
С учетом запросов тренинговых и консалтинговых компаний и типовых проблем, мы приступили к разработке CRM-системы "Тренинг-Семинар-Конференция".
Стоимость CRM-системы "Тренинг-Семинар-Конференция" может составлять:
2 зарплаты менеджера-продаж
2 зарплаты бизнес-тренера / консультанта
2 зарплаты ведущего бизнес-тренера / консультанта
Ваше мнение в свободной форме:
5. Дальнейшее изложение построено как описание действий менеджера хронологически: от планирования мероприятия до подведения его итогов
5.1. Первое, что необходимо сделать для начала работы с программой - это внести в нее информацию о своей компании, о ее сотрудниках, о руководителе.
Кроме того, перед началом работы, мы можем загрузить в базу программы имеющиеся у нас списки Клиентов (в формате таблиц Excel).
5.2. Перед организацией мероприятия нужно выполнить ряд действий:Важный момент: программа интегрирована с Интернет-порталом TREKO.RU и позволяет автоматически разместить информацию о мероприятии на портале
Какие еще действия нужно выполнить при планировании мероприятия? Ваше мнение в свободной форме:
5.3. Планиование
Программа позволяет планировать различные подготовительные этапы мероприятия, например:Какие данные программа должна сообщать Руководителю? О каких событиях, действиях?
С какой периодичностью?
Несколько раз в день
Непосредственно через CRM-систему
Письмом по e-mail
5.4. Далее наступает этап продвижения и продаж:
Очевидно, что Клиенты привлекаются разными способами. Это могут быть:Наш опрос тренингово-консалтинговых компаний показал, что обычно в "черный список" заносятся Клиенты, которые отличались явно неадекватным либо непорядочным поведением на стадии подготовки предыдущих мероприятий, при их проведении, а также, например, занимающиеся плагиатом . "Черный список" должен сигнализировать о том, что данного Клиента не стоит приглашать на мероприятие, даже только что принятому на работу менеджеру, который не знал всей предыстории взаимоотношений… Клиенты из Черного списка автоматически выделяются цветом.
Известно, что даже один неадекватный Клиент может создать много проблем - см. Трудные участники обучения .
Впрочем, вот более забавный пример:
ПРИМЕР-5. "В июле 2001 года Сотрудники сафари-парка Blair Drummond в Шотландии были завалены беспрерывной чередой телефонных звонков, где на том конце кто-то только тяжело дышал в трубку. Оказалось, что это выходка Чиппи, местного шимпанзе, стащившего мобильный телефон у смотрителя. Да, вот до чего дошло - даже у шимпанзе теперь есть мобильные телефоны!"
Хилл Сэм, Шестьдесят трендов за шестьдесят минут, СПб, "Крылов", 2004 г. с. 188.ПРИМЕР-6. Недавно я получил письмо от одного из банков, в котором ко мне обращались так: "Дорогая Георгий Борисович!"
Не является секретом, что в тренинговых фирмах часть общения с Клиентами осуществляется по телефону, часть по e-mail. Даже начинающему менеджеру при телефонном разговоре несложно вежливо обратиться по телефону, скажем, к Александру Ивановичу либо Александре Ивановне . Другое дело, если речь идет об отправке нескольких десятков или сотен писем разным людям, с которыми менеджер не знаком, при этом не перепутать их ФИО, пол (!), должности, названия фирм и т.п. Поэтому в программе встроен блок персонализации, которого мы к своему удивлению не обнаружили в других программах… Этот блок автоматически (!) определяет пол Клиента, правильно склоняет его ФИО в зависимости от пола и добавляет в текст письма любые его персональные данные.
Какие персональные данные Клиента, кроме его ФИО, чаще всего используются в переписке?
5.5. Важный этап - это регистрация Участников и внесение информации о них в базу данных программы. На этом этапе программа позволяет:Какую информацию о Клиенте нужно заносить в базу при регистрации (кроме традиционных контактных данных)?
5.6. Работа с документацией
На этом этапе программа позволяет подготовить Договора и Счета и отправить их Клиентам по e-mail. Естественно, как этого требуют правила бухгалтерского учета, оригиналы документов будут подготовлены уже непосредственно к мероприятию.
При подготовке Договоров и Счетов необходимо учитывать, что некоторые Клиенты могут оплачивать участие сразу в нескольких мероприятиях, от некоторых организаций может принимать участие несколько Участников, кроме того, есть скидки и дополнительные платежи, о которых говорилось в самом начале данного Доклада… Для компьютерной программы это не представляет каких-либо трудностей.
5.7. Непосредственно перед мероприятием
Программа позволяет подготовить и распечатать различные документы, например:Какие еще документы необходимо подготовить к мероприятию?
5.8. После мероприятия
По окончании мероприятия программа позволяет:Уважаемы знатоки, ищется бесплатная Программа для ведения Клиентской базы данных, может кто нибудь использует подобное ПО, посоветуйте если есть опыт использования.
Уважаемы знатоки, ищется бесплатная Программа для ведения Клиентской базы данных, может кто нибудь использует подобное ПО, посоветуйте если есть опыт использования.
SaltCRM круче
Могу предложить "Клиенты" - программу для ведения клиентской базы предприятия.
Учет информации о клиентах организации, товаров/услуг, заказанных клиентами, контактах с клиентами. "Карточка клиента" содержит информацию клиенте, отображает все товары клиента, состояние учетных документов, историю контактов.
Оповещение по дате контроля контакта.
Оповещение по дню рождения сотрудников клиента.
Быстрый ввод заказа из меню.
Загрузка клиентской базы из файла MS Excel.
Программа предназначена для работы в локальной компьютерной сети.
Предусмотрено разделение прав доступа, пользователю можно назначить один из четырех интерфейсов: Администратор, Старший менеджер, Менеджер, Просмотр. Имеется возможность установить для пользователя реквизит "Видеть только своих клиентов".
Программа бесплатная. Подробности в личку.
Бесплатная, сетевая, многопользовательская версия простой CRM-системы. Скачайте, установите и работайте без помощи программиста - очень просто!
Основные особенности бесплатной программы «База Клиентов 2.0»
Следует отметить простоту установки и обслуживания данной программы (программист не нужен), удобное интерфейсное решение и возможность расширения функционала. Полноценная структура «Клиент-Сервер» совершенно бесплатно!
Установите программу «Базу Клиентов 2.0» на своем компьютере и оцените ее богатые возможности – потратив 10 минут времени, вы навсегда откажитесь от сохранения данных о своих клиентах в Microsoft ® Excel.
Преимущества нашей программы перед аналогами
Если Вы хотите иметь более широкий спектр возможностей для учета Ваших клиентов - тогда советуем посмотреть информацию о «Базе Клиентов 3.1» - недорогой и качественной CRM-системе.
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОЕКТИРОВАНИЯ УДАЛЕННЫХ БАЗ ДАННЫХ
АРХИТЕКТУРЫ УДАЛЕННЫХ БАЗ ДАННЫХ
1.1. Термины и определения
Системы управления удаленными <распределенными) базами данных — это СУБД (СУРБД), обеспечивающие возможность одновременного доступа к информации различным пользователям.
Рассмотрим термины, применяемые в системах управления распределенными базами данных.
Архитектура БД — организация взаимодействия аппаратных средств.
Виды архитектуры БД: клиент—сервер, двухуровневая и трехуровневая клиент-сервер, файл —сервер.
Архитектура ODBC (Open DataBase Connectivity) — открытый интерфейс доступа к базам данных, т.е. взаимодействие процессора (ядра) базы данных Jet с внешними источниками данных.
Модели данных — схемы, характеризующие базы данных с разных сторон с целью определить оптимальное построение информационной системы.
Ядро базы данных — внутренняя структура СУБД, обеспечивающая доступ ко всем компонентам базы данных. В новых версиях СУБД Access называется Microsoft Data Engine (MSDE); в ранних версиях ядро базы данных называлось машина базы данных Microsoft Jet . Ядро базы данных обеспечивает поддержку символов различных алфавитов, синтаксис языка SQL и другие средства обработки различных типов данных.
Пользователь БД — программа или человек, обращающийся к базе данных.
Запрос — процесс обращения пользователя к БД с целью ввести, получить или изменить информацию.
Транзакция — последовательность операций модификации данных в БД, переводящая ее из одного непротиворечивого состояния в другое непротиворечивое состояние.
Логическая структура БД — определение БД на физически независимом уровне, что ближе всего соответствует концептуальной ее модели.
ТоНология БД, или структура распределенной БД, — схема распределения физической организации базы данных в сети.
Локальная автономность — понятие, означающее, что информация локальной БД и связанные с ней определения данных принадлежат локальному владельцу и им управляются.
Удаленный запрос — запрос к базам данных, находящихся на ресурсах локальной сети предприятия или сети Интернет.
Возможность реализации удаленной транзакции — обработка одной транзакции, состоящей из множества SQL-запросов, на одном удаленном узле.
Поддержка распределенной транзакции — обработка транзакции, состоящей из нескольких SQL-запросов, выполняемых на нескольких узлах сети (удаленных или локальных), но каждый из которых обрабатывается только на одном узле.
Распределенный запрос — запрос, при обработке которого используются данные из БД, расположенные в разных узлах сети.
Системы распределенной обработки данных в основном связаны с первым поколением БД, которые строились на мультипрограммных операционных системах, хранились на устройствах внешней памяти центральной ЭВМ и использовали терминальный многопользовательский режим доступа. При этом пользовательские терминалы не имели собственных ресурсов, т.е. процессоров и памяти, которые могли бы использоваться для хранения и обработки данных. Первой полностью реляционной системой, работающей в многопользовательском режиме, была СУБД SYSTEM R фирмы IBM. Именно в ней были реализованы как язык манипулирования данными SQL, так и основные принципы синхронизации, применяемые при распределенной обработке данных, которые до сих пор являются базисными практически во всех коммерческих СУБД.
1.2. Архитектуры клиент—сервер в технологии управления удаленными базами данных
Вычислительная модель клиент-сервер исходно связана с появлением открытых систем в 1990-х гг. Термин клиент—сервер применялся к архитектуре программного обеспечения, состоящего из двух процессов обработки информации: клиентского и серверного. Клиентский процесс запрашивал некоторые услуги, а серверный — обеспечивал их выполнение. При этом предполагалось, что один серверный процесс может обслужить множество клиентских процессов. Учитывая, что аппаратная реализация этой модели управления базами данных связана с созданием локальных вычислительных сетей предприятия, такую организацию процесса обработки информации называют архитектурой клиент—сервер.
Основной принцип модели клиент—сервер применительно к технологии управления базами данных заключается в разделении функций стандартного интерактивного приложения на пять групп, имеющих различную природу:
функции ввода и отображения данных (Presentation Logic);
прикладные функции, определяющие основные алгоритмы решения задач приложения (Business Logic);
функции обработки данных внутри приложения (DataBase Logic);
функции управления информационными ресурсами (DataBase Manager System);
служебные функции, играющие роль связок между функциями первых четырех групп.
Структура типового приложения, работающего с базой данных в архитектуре клиент—сервер, приведена рис. 1.1.
Презентационная логика (Presentation Logic) как часть приложения определяется тем, что пользователь видит на своем экране, что приложение работает. Сюда относятся все интерфейсные экранные формы, которые пользователь видит или заполняет в ходе работы приложения, а также все то, что выводится пользователю на экран в качестве результатов решения некоторых про-
чтение и запись в экранные формы информации;
управление экраном;
обработка движений мыши и нажатие клавиш клавиатуры.
Бизнес-логика, или логика собственно приложений (Business
Processing Logic), — это часть кода приложения, которая определяет собственно алгоритмы решения конкретных его задач. Обычно этот код записывается с использованием различных языков программирования, таких как С, С++, Visual Basic и др.
Логика обработки данных (Data Manipulation Logic) — это часть кода приложения, которая непосредственно связана с обработкой данных внутри него. Далными управляет собственно СУБД, а для обеспечения доступа к ним используется язык SQL.
Процессор управления данными (DataBase Manager System Processing) — это собственно СУБД, которая обеспечивает хранение и управление базами данных. В идеале функции СУБД должны быть скрыты от бизнес-логики приложения, однако при рассмотрении архитектуры приложения мы выделим их в отдельную его часть.
Рис. 1.2. Распределение функций компонентов приложения в моделях
клиент—север
В централизованной архитектуре (Host-Based Processing) указанные части приложения располагаются в единой среде и комбинируются внутри одной исполняемой программы. В децентрализованной архитектуре эти части приложения могут быть по-разному распределены между серверным и клиентским процессами.
удаленное представление (Remote Presentation);
распределенная бизнес-логика (Remote Business Logic);
удаленное управление данными (Remote Data Management);
распределенное управление данными (Distributed Data Management).
Эта условная классификации показывает, как могут быть распределены отдельные задачи между серверным и клиентскими процессами. В данной классификации отсутствует реализация удаленной бизнес-логики, так как считается, что она не может быть удалена полностью, а может быть лишь распределена между разными процессами, которые могут взаимодействовать друг с другом.
1.3. Двухуровневые модели
Двухуровневые модели управления БД фактически являются результатом распределения пяти указанных ранее групп функций стандартного интерактивного приложения между двумя процессами, выполняемыми на двух платформах: компьютере клиента и на сервере. В чистом виде не существует ни одна из них, однако рассмотрим наиболее характерные особенности каждой двухуровневой модели.
Модель удаленного управления данными, или модель файлового сервера ( File Server — FS ). В этой модели презентационная логика и бизнес-логика располагаются на клиентской части. На сервере располагаются файлы с данными и поддерживается доступ к этим файлам. Функции управления информационными ресурсами в этой модели находятся на клиентской части.
Распределение функций компонентов приложения в моделях клиент — сервер представлено на рис. 1.3.
В этой модели файлы базы данных хранятся на сервере, клиент обращается к серверу с файловыми командами, а механизм управления всеми информационными ресурсами — собственно база метаданных (выбранных данных) — находится на компьютере клиента.
Рис. 1.3. Модель файлового сервера
Д остоинство данной модели состоит в том, что приложение разделено на два взаимодействующих процесса. При этом сервер
(серверный процесс) может обслуживать множество клиентов, которые обращаются к нему с запросами. Собственно СУБД должна находиться в этой модели на компьютере клиента.
Алгоритм выполнения клиентского запроса сводится к следующему.
Запрос формулируется в командах языка манипулирования данными (ЯМД).
СУБД переводит этот запрос в последовательность файловых команд.
Каждая файловая команда вызывает перекачку блока информации на компьютер клиента, а СУБД анализирует полученную информацию, и если в полученном блоке не содержится ответ на запрос, принимается решение о перекачке следующего блока информации и т.д.
Перекачка информации с сервера на клиентский компьютер производится до тех пор, пока не будет получен ответ на запрос клиента.
Рассмотренная модель имеет следующие недостатки:
высокий сетевой трафик, который связан с передачей по сети множества блоков и файлов, необходимых приложению;
узкий спектр операций манипулирования с данными, определяемый только файловыми командами;
отсутствие адекватных средств безопасности доступа к данным (защита только на уровне файловой системы).
Рис. 1.4. Структура модели удаленного доступа к данным
Модель удаленного доступа к данным ( Remote Data Access — RDA ). В этой модели база данных хранится на сервере. Там же находится и ядро СУБД. На компьютере клиента располагаются презентационная логика и бизнес-логика приложения. Клиент обращается к серверу с запросами на языке SQL. Структура модели удаленного доступа к данным приведена на рис. 1.4.
Преимущества данной модели состоят в следующем:
перенос компонента представления и прикладного компонента на клиентский компьютер существенно разгружает сервер БД, сводя к минимуму общее число выполняемых процессов в операционной системе;
сервер БД освобождается от несвойственных ему функций, а процессор или процессоры сервера целиком загружаются операциями обработки данных запросов и транзакций;
резко уменьшается загрузка сети, так как по ней от клиентов к серверу передаются не запросы на ввод-вывод в файловой терминологии, а запросы на языке SQL, объем которых существенно меньше. В ответ же на эти запросы клиент получает только данные, соответствующие запросу, а не блоки файлов.
Основным достоинством модели RDA является унификация интерфейса клиент—сервер, т.е. стандартным при общении приложения клиента и сервера становится язык SQL.
Недостатки данной модели:
запросы на языке SQL при интенсивной работе клиентской части приложения могут существенно загрузить сеть;
так как в этой модели на компьютере клиента располагаются и презентационная логика, и бизнес-логика приложения, при повторении аналогичных функций в других приложениях код, соответствующей бизнес-логики, должен быть повторен для каждого клиентского приложения, что вызывает излишнее их дублирование;
так как сервер в этой модели играет пассивную роль, функции управления информационными ресурсами должны выполняться на компьютере клиента.Модель сервера баз данных. Для исключения недостатков модели удаленного доступа к данным необходимо выполнение следующих условий.
БД в каждый момент времени должна отражать текущее состояние предметной области, которое определяется не только собственно данными, но и связями между объектами данных, т.е. данные, которые хранятся в БД, в каждый момент времени должны быть непротиворечивыми.
БД должна отражать некоторые правила предметной области и законы, по которым она функционирует (Business Rules). Например, завод может нормально работать, только если на складе имеется достаточный (страховой) запас деталей определенной номенклатуры, а деталь может быть запущена в производство, только если на складе имеется достаточно материала для ее изготовления, и т.д.
Обеспечение постоянного контроля за состоянием БД, отслеживание всех изменений и адекватная реакция на них. Например, при достижении некоторым измеряемым параметром критического значения должно произойти отключение определенной аппаратуры, при уменьшении товарного запаса ниже допустимой нормы должна быть сформирована заявка конкретному поставщику на поставку соответствующего товара и т. п.
Возникновение некоторой ситуации в БД должно четко и оперативно влиять на ход выполнения прикладной задачи.
Совершенствование контроля типов данных СУБД. В настоящее время СУБД контролирует синтаксически только стандарт- но-допустимые типы данных, т. е. которые определены в DDL (Data Definition Language) — языке описания данных, являющемся частью SQL. Однако в реальных предметных областях существуют данные, которые несут в себе еще и семантическую составляющую, например координаты объектов или единицы измерений.
Модель сервера баз данных поддерживают большинство современных СУБД: Informix, Ingres, Sybase, Oracle, MS SQL Server. Основу данной модели составляют: механизм хранимых процедур как средство программирования SQL-сервера, механизм триггеров как механизм отслеживания текущего состояния информационного хранилища и механизм ограничений на пользовательские типы данных, который иногда называют механизмом поддержки доменной структуры.
Модель активного сервера базы данных представлена на рис. 1.5. В этой модели бизнес-логика разделена между клиентом и сервером. На сервере бизнес-логика реализована в виде хранимых процедур — специальных программных модулей, которые хранятся в БД и управляются непосредственно СУБД. Клиентское приложение обращается к серверу с командой запуска хранимой процедуры, а сервер выполняет эту процедуру и регистрирует все предус-
Рис. 1.5. Модель активного сервера базы данных
мотренные изменения в БД. Сервер возвращает клиенту данные выполненного запроса, которые требуются клиенту либо для вывода на экран, либо для выполнения части бизнес-логики. При этом трафик обмена информацией между клиентом и сервером резко уменьшается.
Централизованный контроль в модели сервера баз данных выполняется с использованием механизма триггеров, которые также являются частью БД.
Термин «триггер», взятый из электроники, семантически очень точно характеризует механизм отслеживания специальных событий, связанных с состоянием БД. Триггер является как бы некоторым тумблером, который срабатывает при возникновении определенного события в БД. Ядро СУБД проводит мониторинг всех событий, вызывающих созданные и описанные триггеры в БД, и при возникновении такого события сервер запускает соответствующий триггер. Каждый триггер представляет собой также некоторую программу, которая выполняется с базой данных. С помощью триггеров можно вызывать хранимые процедуры.
Механизм использования триггеров предполагает, что при срабатывании одного из них могут возникнуть события, которые вызовут срабатывание других.
В данной модели сервер является активным, так как в ней не только клиент, но и сам сервер, используя механизм триггеров, может быть инициатором обработки данных в БД.
Хранимые процедуры и триггеры хранятся в словаре БД и, следовательно, могут быть использованы несколькими клиентами, что существенно уменьшает дублирование алгоритмов обработки данных в разных клиентских приложениях.
Недостатком данной модели является очень большая загрузка сервера, так как он обслуживает множество клиентов и выполняет следующие функции:
• осуществляет мониторинг событий, связанных с выполнением разработанных триггеров;
обеспечивает автоматическое срабатывание триггеров при возникновении связанных с ними событий;
обеспечивает исполнение внутренней программы каждого триггера;
запускает хранимые процедуры по запросам пользователей;
запускает хранимые процедуры из триггеров;
возвращает требуемые данные клиенту;
обеспечивает выполнение всех функций СУБД (доступ к данным, контроль и поддержку целостности данных в БД, контроль доступа, обеспечение корректной параллельной работы всех пользователей с единой БД).
Если перенести на сервер большую часть бизнес-логики приложений, то требования к клиентам в этой модели резко уменьшатся. Иногда такую модель называют моделью с тонким клиентом, а рассмотренные ранее модели — моделями с толстым клиентом.
Модель сервера приложений. Эта трехуровневая модель, являющаяся расширением двухуровневой модели, т.е. с введенным дополнительным промежуточным уровнем между клиентом и сервером, была предложена для разгрузки сервера.
Архитектура трехуровневой модели приведена на рис. 1.6. Промежуточный уровень может содержать один или несколько серверов приложений.
В данной модели компоненты приложения делятся между тремя исполнителями: клиентом, сервером приложений и сервером базы данных.
Клиент обеспечивает логику представления, включая графический пользовательский интерфейс и локальные редакторы. Клиент может запускать локальный код приложения клиента, который может содержать обращения к локальной БД, расположенной на его компьютере. Клиент исполняет коммуникационные функции front-end части приложения, обеспечивающие ему доступ в локальную или глобальную сеть. Дополнительно реализация взаимодействия между клиентом и сервером может включать в себя управление распределенными транзакциями, что соответствует случаям, когда клиент также является клиентом менеджера распределенных транзакций.
Рис. 1.6. Модель сервера приложений
Серверы приложений, составляющие новый промежуточный уровень архитектуры модели, спроектированы для исполнения общих не загружаемых функций клиентов. Серверы приложений поддерживают функции клиентов как частей взаимодействующих рабочих групп, сетевую доменную операционную среду и каталоги с данными, а также хранят и исполняют наиболее общие правила бизнес-логики, обеспечивают обмен сообщениями и поддержку запросов (особенно в распределенных транзакциях).
Серверы баз данных в этой модели занимаются исключительно функциями СУБД: обеспечивают функции создания и ведения БД, поддерживают целостность реляционной БД, обеспечивают функции хранилищ данных (warehouse services). Кроме того, на них возлагаются функции создания резервных копий БД и восстановления БД после сбоев, управления выполнением транзакций и поддержки устаревших (унаследованных) приложений (legacy application).
Данная модель обладает большей гибкостью, чем двухуровневые модели. Наиболее заметны преимущества модели сервера приложений в тех случаях, когда выполняются сложные аналитические расчеты в базе данных, относящихся к области OLAP-при- ложений (On-line analytical processing). В этой модели большая часть бизнес-логики клиента изолирована от возможностей встроенного языка SQL, реализованного в конкретной СУБД, и может быть выполнена на языках программирования С, С++, Sir.i. Talk, Cobol, что повышает переносимость системы и ее масштабируемость.
Модели серверов баз данных. При создании первых СУБД технология клиент—сервер только зарождалась, поэтому изначально в архитектуре этих систем не было адекватного механизма организации взаимодействия клиентского и серверного процессов. В современных СУБД этот механизм является фактически основополагающим и от эффективности его реализации зависит эффективность работы системы в целом.
Рассмотрим эволюцию подобных механизмов. В основном такой механизм определяется структурой реализации серверных процессов и часто называется архитектурой сервера баз данных.
Как уже отмечалось, поначалу существовала модель, в которой управление данными (функция сервера) и взаимодействие с пользователем были совмещены в одной программе. Этот этап развития серверов БД можно назвать нулевым.
Затем функции управления данными были выделены в самостоятельную группу — сервер. Однако при этом модель взаимодействия пользователя с сервером соответствовала структуре связей между таблицами баз данных «один к одному» (рис. 1.7), т.е. сервер обслуживал запросы только одного пользователя (клиента), а для обслуживания нескольких клиентов нужно было запустить соответствующее число серверов.
Рис. 1.7. Взаимодействие клиентских и серверных процессов в модели
«один к одному»
Выделение сервера в отдельную программу было революционным шагом, который позволил, в частности, поместить сервер на одну машину, а программный интерфейс с пользователем — на другую и осуществлять взаимодействие между ними по сети. Однако необходимость запуска большого числа серверов для обслуживания множества пользователей сильно ограничивала возможности такой системы. Для обслуживания большого числа клиентов на сервере следовало одновременно запустить в работу большое число серверных процессов, что резко повышало требования к ресурсам ЭВМ.
Кроме того, каждый серверный процесс в этой модели запускался как независимый, поэтому запрос, который только что был выполнен одним серверным процессом, при формировании его другим клиентом выполнялся повторно. В такой модели сложно обеспечить взаимодействие серверных процессов. Эта модель серверов баз данных самая простая, и исторически она появилась первой.
Проблемы, возникающие в информационной модели «один к одному», решены в архитектуре систем с выделенным сервером, который способен обрабатывать запросы от многих клиентов. В этой системе сервер единственный обладает монополией на управление данными и взаимодействует одновременно со многими клиентами (рис. 1.8). Логически каждый клиент связан с сервером от-
Рис. 1.8. Многопотоковая односерверная архитектура
дельной нитью (thread) или потоком, по которому пересылаются запросы. Такая архитектура, получившая название многопотоковой односерверной (multi-threaded), позволяет значительно уменьшить нагрузку на операционную систему, возникающую при работе большого числа пользователей (trashing).
Кроме того, обеспеченная в данной модели возможность взаимодействия многих клиентов с одним сервером позволяет в полной мере использовать разделяемые объекты (начиная с открытых файлов и заканчивая данными из системных каталогов), что значительно уменьшает потребность в памяти и общее число процессов операционной системы. Например, в модели «один к одному» СУБД создает 100 копий процессов для 100 пользователей, а системе с многопотоковой архитектурой для этого понадобится только один серверный процесс.
Однако такое решение имеет свои недостатки. Так как сервер может выполняться только на одном процессоре, возникает естественное ограничение на применение СУБД для мультипроцессорных платформ. Если компьютер имеет, например, четыре процессора, то СУБД с одним сервером использует только один из них, не загружая другие три.
Контрольные вопросы
Дайте определения следующих терминов: архитектура ODBC, модели данных, транзакция, топология БД (или структура распределенной БД), локальная автономность, удаленный запрос, распределенный запрос, поддержка распределенной транзакции, презентационная логика, бизнес-логика, логика обработки данных, процессор управления данными.
Какие двухуровневые модели вы знаете? Назовите их достоинства и недостатки.