Версия 6.0 предоставляет новые инструменты управления и улучшенную поддержку распределенных баз данных. Microsoft не собирается сдавать свои позиции на рынке баз данных.

Итог испытаний

Джо Салеми

ОБЗОР
ВОЗМОЖНОСТИ РАБОТЫ С БАЗАМИ ДАННЫХ
АДМИНИСТРИРОВАНИЕ СЕТИ
ПУТЬ К ПРЕДПРИЯТИЮ

В 1987 году Microsoft и Sybase произвели подлинную революцию в архитектуре клиент/сервер своим совместным продуктом SQL Server 1.0 для OS/2. Семь лет спустя они объявили о том, что альянс Microsoft&Sybase прекратил свое существование, и совместной разработки последующих версий этого популярного сервера баз данных не будет. Sybase впоследствии выпустила свою собственную обновленную версию - известную под именем Sybase SQL Server 10.1 - как часть семейства продуктов Sybase System 10. Microsoft же держала общественность в неведении относительно своих планов на будущее в этой области, так что все с нетерпением ждали хотя бы намека на то, какой путь выберет бывший партнер Sybase.

Наконец ответ был получен с выходом Microsoft SQL Server 6.0. Несмотря на смену номера с 4.2 на 6.0, данная версия принципиально мало чем отличается от прежней. Это хорошая новость для тех, кто вложил большие средства в клиент-серверные системы на базе предыдущей версии, подавляющее большинство имеющихся приложений будет также исправно работать и с новой версией сервера. Разработчики приложений могут установить 6.0 в качестве сервера и затем доработать приложения с тем, чтобы они могли использовать преимущества и возможности нового сервера в полном объеме. Основные изменения, внесенные в SQL Server 6.0, касаются инструментов управления и распределенных баз данных. Новые инструменты более тесно интегрированы с сервером баз данных, нежели в предыдущих версиях, так что администратор получает более удобные и простые в использовании средства управления пользователями, безопасностью и производительностью (см. Рис. 1). Инструменты упрощают также установку системы распределенных баз данных - достоинство, которое трудно переоценить, поскольку проектирование и настройка распределенных систем довольно сложная задача. Администраторы сети и баз данных должны работать рука об руку, чтобы система в целом работала как надо.

Picture 1 (1x1)

Рисунок 1.
SQL Server 6.0 поставляется вместе с набором новых утилит управления. Он также имеет полный набор руководств, доступных в интерактивном режиме.

В этой статье Microsoft SQL Server 6.0 рассматривается в трех аспектах: общий обзор новых возможностей продукта, новые возможности в разрезе управления базами данных и новые возможности в разрезе управления сетью.

ОБЗОР

SQL Server 6.0 доступен для Windows NT 3.5 или выше (рекомендуется 3.51) на базе 32-разрядных процессоров Intel, а также процессоров Digital Equipment Alpha и MIPS. Серверу необходимо по меньшей мере 16 Мбайт RAM - больший объем памяти нужен в том случае, если вы хотите использовать его в качестве сервера тиражирования или для повышения производительности (см. "Итог испытаний"). Объем памяти на жестком диске под программное обеспечение сервера баз данных и собственной базы данных Master (в ней хранятся данные отслеживания системной информации, такой как идентификаторы пользователей, пароли, имена других баз данных и местоположения этих баз данных) должен быть не менее 60 Мбайт.

SQL Server 6.0 поддерживает несколько сетевых протоколов, в том числе NetBEUI/Named Pipes, IPS/SPX, TCP/IP, Banyan VINES, AppleTalk Data Stream Protocol (ADSP) и DECnet. Вы можете использовать по выбору либо один протокол, либо многопротокольную сетевую библиотеку Multi-Protocol Net-Library. Multi-Protocol позволяет серверу взаимодействовать с помощью любого из механизмов IPC (межпроцессных коммуникаций), поддерживаемых Windows NT. Однако на данный момент Microsoft провела апробацию и поддерживает только TCP/IP, IPX/SPX и Named Pipes.

Цена остается той же, что и для версии 4.2; программное обеспечение сервера - 995 долларов, лицензия на одного клиента - 149 долларов, 2369 долларов для 20 клиентов и 24999 долларов для 250 (при еще большем количестве клиентов предоставляются дополнительные скидки). Однопользовательская версия сервера специально для разработчиков (вместе с программными и прикладными инструментами) стоит 499 долларов, а обновление предыдущей версии для Windows NT обойдется вам в 149 долларов. Microsoft отказалась от практики предоставления дешевых обновлений предыдущих версий для OS/2.

Программное обеспечение сервера для всех трех поддерживаемых процессоров поставляется на одном и том же CD-ROM, который кроме того содержит программное обеспечение клиента для Windows 95, Windows NT и рабочих станций с 16-разрядными Windows и DOS. Компакт-диск содержит также полное интерактивное руководство и приложение для интерактивного поиска необходимой информации в руководстве. Руководство может быть скопировано на жесткий диск, на котором оно займет 15 Мбайт. В случае если руководством будут пользоваться с компакт-диска, для приложения достаточно и 1 Мбайт на жестком диске.

Установка программного обеспечения проходит на одном дыхании. ПО может быть установлено как с собственного привода сервера, так и с любого разделяемого привода в сети. В процессе установки необходимо выбрать несколько опций (о чем несколько позже). Опции определяют способ взаимодействия сервера баз данных с файловым сервером локальной сети и всей остальной сетью. Большинство опций может быть задано или изменено после установки сервера.

Основное усовершенствование по сравнению с прежними версиями - усовершенствование Transact-SQL (родного языка SQL Server) до стандарта начального уровня ANSI Уровень 3. Среди таких усовершенствований курсоры прокрутки, облегчающие просмотр результатов запроса, а также встроенная поддержка декларативной целостности ссылок (declarative referential integrity) для определения того, что происходит с записью в дочерней таблице (child table) при удалении соответствующей записи из родительской таблицы. В предыдущих версиях разработчики приложений должны были писать хранимые процедуры (программные процедуры, хранимые и исполняемые на сервере баз данных) для обеспечения целостности ссылок. Встроенная целостность ссылок в SQL Server 6.0 обеспечивает поддержку первичных и внешних ключей, значений по умолчанию и целостность доменов благодаря ограничениям Check, которые проверяют значения, вводимые в графу.

Кроме того, в Transact-SQL добавлены оператор CASE, возможность управления установочными параметрами при помощи команды SET и ряд новых глобальных переменных, в которых хранится информация о сервере и базе данных. Улучшены обработка ошибок и проверка базы данных на непротиворечивость. Добавлены два точных типа данных (DECIMAL и NUMERIC), а остальные типы данных были модифицированы для совместимости со стандартом ANSI SQL.

Теперь сервер поддерживает локальные и глобальные временные объекты, в основном временные таблицы и хранимые процедуры. Локальные временные объекты можно увидеть только в текущем сеансе клиента и они теряются при разрыве соединения. Глобальные временные объекты доступны всем пользователям базы данных и теряются лишь при разрыве всех соединений с базой данных.

SQL Server 6.0 обладает более мощными возможностями параллельной обработки по сравнению с прежними версиями. Он лучше осуществляет многопотоковую обработку при параллельном поиске данных, благодаря чему значительно возрастает эффективность обработки запросов (что однако зависит от конкретной платформы и конкретного запроса).

Наконец, сервер теперь позволяет динамически исполнять операторы SQL. Это дает разработчику приложений дополнительную гибкость в деле обеспечения поддержки для непланируемых запросов и отчетов в приложениях. Программные библиотеки для C и Visual Basic были обновлены и поддерживают новые возможности Transact-SQL.

Другие усовершенствования включают поддержку баз данных объемом до 8 Тбайт и до 2 Гбайт RAM на сервере. Пакет также включает драйверы в стандарте ODBC (Open Database Connectivity) версии 2.5. Эти драйверы поддерживают новые возможности Transact-SQL для приложений сторонних разработчиков в случае, когда данные приложения используют ODBC для взаимодействия с сервером.

Многопротокольная сетевая библиотека добавляет поддержку для шифрованных потоков данных, что обеспечивает дополнительную степень их защищенности. Хранимые процедуры, представление (разновидность хранимых процедур, которые выполняются автоматически при выполнении предопределенных условий) и триггеры также могут быть зашифрованы на сервере для предотвращения непреднамеренных модификаций пользователей и обеспечения дополнительной защищенности данных.

ВОЗМОЖНОСТИ РАБОТЫ С БАЗАМИ ДАННЫХ

В версии 6.0 процедуры установки сервера были полностью пересмотрены. По умолчанию используется набор символов ANSI, и порядок статей в словаре не зависит от регистра при сортировке. Эти умолчания могут быть изменены при начальной установке или в любое время во время повторного запуска программы установки.

Пакет включает утилиту (CHKUPG.EXE) для проверки существующих баз данных SQL Server 4.2 перед обновлением до версии 6.0. Утилита проверяет базу данных на непротиворечивость. Она также удостоверяется в наличии необходимых комментариев в таблице Syscomments (одна из основных таблиц в базе данных Master), а также устанавливает возможные конфликты между старыми и новыми ключевыми словами.

SQL Server 6.0 имеет два вида лицензирования: на место и на сервер (тип лицензии выбирается при установке). В первом случае каждый пользователь базы данных должен иметь клиентскую лицензию. При этом компания Microsoft полагается на добропорядочность пользователей: сервер не ограничивает число соединений и предполагает, что каждый пользователь имеет лицензию. Во втором случае задается число пользователей, которые могут одновременно получить доступ к базе данных. Сверх оговоренного числа соединения не устанавливаются. Лицензирование на сервер обеспечивает наибольшую гибкость для большинства организаций, потому что он дает возможность иметь пользователей больше, чем клиентских лицензий. Это удобно, когда пользователи в основном соединяются с сервером для получения ответа на краткие запросы и затем отсоединяются от него.

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

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

Сервер можно установить на автоматический запуск при запуске рабочей станции под NT, но запуск можно осуществлять и вручную. Любую опцию допустимо изменять в любое время либо из пункта Services в панели управления NT, либо при помощи утилиты SQL Enterprise Manager. Данная утилита используется для запуска, паузы или остановки сервера вручную. Кроме того, сервер может быть запущен из командной строки NT.

Новая утилита SQL Executive осуществляет функции планирования и предупреждения для сервера баз данных. Интервалы резервного копирования, опции предупреждения (предупреждения - это извещения администратора базы данных по электронной почте или через пейджер о любых проблемах с сервером базы данных) и задания на плановое тиражирование могут быть также определены. Данную утилиту можно использовать для планирования других заданий, например выполнение специализированных команд Transact-SQL для управления или модификации базы данных через определенные интервалы времени.

При установке сервера следует иметь в виду еще одну важную опцию - тип бюджета пользователя Windows NT для использования программным обеспечением сервера. В случае если вы будете работать только с базой данных SQL Server, то бюджет по умолчанию LocalSystem вполне достаточен. Если сервер будет взаимодействовать с другими серверами баз данных для таких целей, как тиражирование баз данных или автоматическое выполнение заданий, то потребуется создать специальный пользовательский бюджет для SQL Server Executive. Такой бюджет должен обладать административными привилегиями на сервере NT или во всем домене NT, если вы хотите, чтобы несколько серверов совместно использовали один бюджет. Вам придется тесно взаимодействовать с администратором сети при установке такого бюджета с тем, чтобы он получил нужные права. Без администратора сети не обойтись и при задании идентификаторов входа на сервер для пользователей.

Установка клиента проста. Клиентское программное обеспечение записано на CD-ROM; установка под Windows 95 осуществляется при помощи той же программы, что и установка сервера. Для установки клиента 16-разрядных Windows используется отдельная программа установки. Процедура автоматической установки клиента DOS не предусмотрена; необходимое программное обеспечение следует скопировать на рабочую станцию под DOS, а файлы COFIG.SYS и AUTOEXEC.BAT должны быть изменены в соответствии с указаниями в руководстве.

Помимо самого сервера были значительно усовершенствованы административные функции. В предыдущих версиях большинство административных заданий осуществлялось вручную посредством вызова хранимых процедур или при помощи SQL Administrator на базе Windows с весьма ограниченными возможностями. В новой версии SQL Administrator был заменен на полностью интегрированный инструмент управления SQL Enterprise Manager.

Picture 2 (1x1)

Рисунок 2.
Пользователи SQL Server могут быть импортированы непосредственно из домена Windows NT Server при помощи SQL Enterprise Manager или автономной программы Sequrity Manager.

Всяким SQL Server можно управлять с рабочей станции под Windows NT или Windows 95 c SQL Enterprise Manager. SQL Enterprise Manager позволяет задавать логические группы серверов и регистрировать конкретные серверы в одной или нескольких группах для удобства управления (см. Рис. 2). При установке соединения с сервером Enterprise Manager позволяет давать и отменять права пользователей по отношению к конкретным базам данных, задавать настроечные параметры базы данных, устанавливать иерархию тиражирования, а также управлять отдельными базами данных и устройствами баз данных (см. Рис. 3). Устройство базы данных - это один или несколько постоянных или съемных дисков, на которых записаны реальные базы данных. Одна база данных может располагаться на нескольких устройствах. Все это осуществляется при помощи простых в использовании диалоговых окон и графических экранов (см. Рис. 4).

Picture 3 (1x1)

Рисунок 3.
После установки бюджетов пользователей привилегии для базы данных могут быть присвоены при помощи SQL Enterprise Manager.

Picture 4 (1x1)

Рисунок 4.
SQL Enterprise Manager использует трехмерные диаграммы при управлении размером и местоположением базы данных.

Enterprise Manager используется и для дублирования дисков, так что устройство базы данных может быть целиком продублировано на отдельном жестком диске на том же сервере. Enterprise Manager позволяет также автоматизировать выполнение заданий за счет возможностей утилиты SQL Executive.

АДМИНИСТРИРОВАНИЕ СЕТИ

SQL Server 6.0 более тесно интегрирован в Windows NT, чем любая из предыдущих версий, так что взаимодействие администраторов сети и базы данных еще более важно при установке серверов баз данных. Первое, что должен сделать администратор сети, - это выделить необходимое оборудование для сервера баз данных и определить изменения в операционной системе, защите и топологии.

Если сеть работает не под Windows for Workgroups, то для выполнения программного обеспечения сервера баз данных потребуется установить Windows NT Server с оперативной памятью не менее 16 Мбайт и добавить его к сети вместе с протоколами, необходимыми для взаимодействия с локальной сетью. Это может вызвать некоторые затруднения, если вы никогда раньше не имели дела с NT. К счастью, руководства по операционной системе довольно подробны и содержат всю необходимую информацию для установки и запуска. После запуска NT Server вы должны установить и опробовать программное обеспечение SQL Server вместе с администратором базы данных.

Добавить сервер NT к локальной сети под Windows for Workgroups гораздо проще. Если в процессе установки указывается, что сервер является частью сети под Windows for Workgroups, то он будет выглядеть как другие разделяемые сетевые ресурсы.

Ситуация в корне отлична для сети на базе NT Server. Microsoft не рекомендует размещать программное обеспечение SQL Server на сервере Primary Domain Controller, поскольку выполнение функций по управлению отнимает значительную часть времени процессора и тем самым снижает эффективность сервера базы данных. Для достижения наивысшей производительности и целостности данных лучше всего разместить сервер баз данных на выделенной системе. Таким образом вы исключаете вероятность того, что сервисы, не имеющие отношения к обслуживанию базы данных, заблокируют сервер баз данных или приведут к его краху, в результате чего могут пострадать данные, хранимые в базе данных.

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

Другой областью, в которой администраторы сети и базы данных должны напрямую взаимодействовать друг с другом, является защита данных. SQL Server 6.0 поддерживает три модели защиты: интегрированную, стандартную и смешанную. Первая отвечает своему названию - она тесно интегрирована с Windows NT. Используя систему защиты NT для проверки пользователей базы данных и разрешая только легальные соединения через многопротокольные стеки или протоколы Named Pipes, интегрированная схема защиты может применяться только в локальных сетях на базе NT Server (или NT Advanced Server) или Windows for Workgroups c протоколами IPX/SPX. При стандартной модели защиты сервер использует собственные идентификаторы входа для проверки пользователей, которым для входа в сервер баз данных необходимо ввести правильный идентификатор и пароль. Стандартная защита может сочетаться с любыми из поддерживаемых сетей и протоколов. Смешанная защита, позволяющая разным категориям пользователей подсоединиться к серверу, является комбинацией стандартной и интегрированной моделей.

Вне зависимости от модели, SQL Server может импортировать бюджеты своих пользователей из домена Windows NT или Microsoft LAN Manager. Присвоение необходимых прав доступа из базы данных к бюджетам пользователей возлагается на администратора базы данных и осуществляется при помощи SQL Enterprise Manager.

Как уже упоминалось ранее, администратор сети должен также задать и идентификаторы пользователя NT для SQL Executive, в особенности если база данных является частью системы распределенных баз данных. SQL Server 6.0 поддерживает распределенные базы данных посредством процесса тиражирования. Тиражирование - один из двух основных методов создания системы распределенных баз данных. При тиражировании база данных целиком или ее часть копируется на несколько серверов, в результате каждый сервер имеет одинаковые данные в своей локальной копии базы данных. Серверы могут располагаться как в той же самой локальной сети, так и в пределах города, области, страны и даже по всему миру.

SQL Server 6.0 использует иерархический метод для установки тиражированных баз данных. Первичная база данных, называемая издателем, содержит основной экземпляр базы данных. База данных копируется на остальные серверы баз данных, называемые подписчиками или подписными базами данных. Они получают обновления от издателя через заданные интервалы времени. Подписчики могут также быть издателями со своим набором подписчиков. Базы данных третьего типа, называемые дистрибьюторами, обрабатывают реальные задания по распространению изменений от издателя подписчикам. Заметим, что в большинстве случаев издатель и дистрибьютор - это одна и та же система; отдельный дистрибьютор используется, если объем изменений в данных для тиражирования велик, и поэтому производительность издателя может упасть, если он начнет сам заниматься процессом распространения.

Нет ничего удивительного в том, что настройка и поддержка системы тиражирования весьма сложное предприятие. Во-первых, издателю/дистрибьютору нужно минимум 32 Мбайта RAM для надежной работы. Во-вторых, дополнительный трафик в сети между серверами может заполонить всю сеть при непродуманной иерархической топологии, а это особенно верно для систем тиражирования по глобальным сетям, в которых соединения между локальными сетями являются медленными.

Наконец, необходимо установить иерархию, т. е. определить, какие серверы баз данных будут издателями/дистрибьюторами, а какие подписчиками. Администраторы сети и базы данных должны это сделать вместе. Они также должны отвечать за то, чтобы распространение изменений в основной копии не совпадало по времени с периодами наибольшей загруженности сети.

Технические подробности установки и управления системы тиражированных баз данных слишком многочисленны, чтобы на них останавливаться. Если вы планируете такую систему, то мы настоятельно рекомендуем администраторам сети и базы данных прочитать соответствующие разделы в руководстве SQL Server Administrator"s Companion. После этого, прежде чем устанавливать реальные соединения, составьте план топологии с использованием блок-схем. После установки системы тиражирования необходимо произвести мониторинг сетевого трафика и производительности базы данных и осуществить изменения в конфигурации для поддержки баланса между производительностью и практичностью.

И в заключение, администраторы сети и базы данных должны определить наилучший протокол для взаимодействия серверов баз данных. В большинстве случаев предпочтителен родной протокол локальной сети, в особенности если это локальная сеть Windows for Workgroups, LAN Manager, NT Advanced Server или NetWare. В таких сетях можно (а зачастую необходимо) использовать многопротокольную поддержку SQL Server для достижения более эффективного соотношения между производительностью и безопасностью. Если защита данных не критична, то вы можете добиться наивысшей производительности за счет использования только одного из поддерживаемых протоколов, и лучше если это будет Named Pipes или IPX/SPX.

ПУТЬ К ПРЕДПРИЯТИЮ

Microsoft SQL Server 6.0 - достойное обновление версии 4.2. Новые возможности упрощают установку, использование и администрирование, а средства тиражирования предлагают перспективный путь к созданию баз данных масштаба предприятия. SQL Server 6.0 обеспечивает также мощную поддержку приложений сторонних производителей. Он достоин вашего выбора, если вы собираетесь установить свою первую систему баз данных в архитектуре клиент/сервер.


Джо Салеми - независимый публицист и консультант по коммуникациям и базам данных, автор четырех книг по базам данных в архитектуре клиент/сервер. С ним можно связаться через CompuServe по адресу: 72632,23.

ИТОГ ИСПЫТАНИЙ

Microsoft SQL Server 6.0

Microsoft
1 Microsoft Wy. Redmond,
WA 98052-6399
(206) 882-8080 Fax: (206) 936-7329
http://www.microsoft.com

Цена: Сервер за $999; лицензия на одного клиента - $149; лицензия на 10 пользователей - $2369; лицензия на 250 пользователей - $24999; возможны варианты.

Требования: Windows NT 3.5 или выше (рекомендуется 3.51) на базе платформ Intel, Alpha или MIPS с 16 Мбайт RAM и 60 Мбайт на жестком диске.

Microsoft SQL Server - это первая версия SQL Server после разрыва творческого союза Microsoft и Sybase. Принципиально он ничем не отличается от предыдущей версии, но обладает улучшенными средствами администрирования и лучшими функциональными возможностями распределенных баз данных. Сервер работает с большинством сетевых операционных систем и предоставляет средства работы с базами данных в архитектуре клиент/сервер всем, начиная от небольших рабочих групп до целых предприятий.

Установка: Программное обеспечение распространяется на CD-ROM и может быть установлено с любого разделяемого привода CD-ROM в сети. Компакт-диск содержит также клиентское программное обеспечение. В процессе установки осуществляются необходимые изменения на сервере и клиентах.

Документация: К программному обеспечению прилагается увесистый набор справочников об установке и администрировании и справочник по языку. Справочники также доступны в интерактивном виде: их можно просмотреть с компакт-диска или скопировать на локальный жесткий диск.

Техническая поддержка: Телефонная поддержка осуществляется за плату по рабочим дням с 6 утра до 6 вечера по тихоокеанскому времени. Поддержка осуществляется также через сертифицированных VAR-ресселеров и сертифицированные центры поддержки (так что тщательней выбирайте своего дилера). Microsoft предлагает и TechNet (подписную информационную службу), и поддержку через различные интерактивные службы.

Гарантия: Девяносто дней со дня покупки.

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

Надежность/совместимость: SQL Server 6.0 достаточно надежен. Он обратно-совместим с приложениями, написанными для предыдущих версий (4.2), хотя большинство разработчиков предпочтут изменить имеющиеся приложения с тем, чтобы они использовали достоинства новой версии в полной мере.

Применимость: SQL Server 6.0 остается одной из трех основных баз данных в архитектуре клиент/сервер (другие две Sybase SQL Server и Oracle). Он предоставляет надежную платформу приложениям любого размера для баз данных в архитектуре клиент/сервер - от небольших рабочих групп до крупных предприятий.

Тестовая среда: Сервер: Compaq 486/33 МГц с 16 Мбайт RAM под Windows NT Server 3.51. Клиенты: Zeos 66 МГц 486/DX2 под Windows 95; портативный компьютер Zeos 50 МГц 486 DX2 под Windows for Workgroups.11.

Поделитесь материалом с коллегами и друзьями