(Возврат на основную страницу)

Содержание номера за Февраль 2004 год

Editorial

30 основных возможностей SQL Server «Yukon»

Откройте для себя новые возможности и функции, предоставляемые новой версией SQL Server под кодовым именем «Yukon», описанные в данной статье.[sum]

Десять основных возможностей для администраторов БД

Функция                                    Описание

Зеркалирование базы данных (Database Mirroring)       Расширение возможностей передачи журналов (log shipping) с помощью опции зеркалирования базы данных. Вы сможете использовать зеркалирование БД для улучшения доступности ваших систем под управлением SQL Server, настраивая автоматический переход на резервный сервер

Оперативные операции индексирования (Online Indexing Operations)      Функция оперативного индексирования позволит выполнять параллельные модификации (обновление, удаление и добавление) в основной таблице или кластерном индексе и любых индексах этой таблицы в процессе создания индексов. Например, во время перестройки кластерного индекса, можно будет продолжать обновление основных данных и выполнять запросы к этим данным

Новый встроенный набор инструментов         С выходом SQL Server «Yukon» будет представлен SQL Server «Studio» — новый интегрированный набор инструментов управления. Этот набор будет включать новые функциональные возможности для разработки, развертывания и выявления неисправностей БД SQL Server, а также улучшения уже существующих функциональных возможностей

Изолирование моментальных снимков (Snapshot Isolation)        Новый уровень изоляции посредством моментальных снимков (Snapshot Isolation, SI) будет обеспечиваться на уровне БД. С помощью SI пользователи смогут получать доступ к последней зафиксированной строке, используя промежуточное согласованное представление БД. Эта способность будет обеспечивать большую масштабируемость для реализаций очень больших БД (VLDB, Very Large Database)

Разбиение данных (Data Partitioning)              Разбиение данных будет улучшено за счет использования встроенных средств для таблиц и индексов, что обеспечит эффективную управляемость больших таблиц и индексов

Зеркалированные резервные копии (Mirrored Backups)               Новая поддержка зеркалированных комплектов копирования (backup set) увеличивает надежность резервных копий SQL Server. Возможность зеркалирования резервных копий поможет разрешать возможные проблемы, связанные с повреждением носителей информации

Оперативное восстановление (Online Restore)              В SQL Server "Yukon" появляется возможность осуществлять операцию восстановления, в то время как часть этой восстанавливаемой БД будет оставаться доступной. Оперативное восстановление улучшает доступность SQL Server, поскольку только восстанавливаемые данные являются недоступными; остальная же БД остается в оперативном режиме и доступна.

Быстрое восстановление (Fast Recovery)         Новая функция быстрого восстановления улучшает доступность БД SQL Server. Появится возможность переподключаться к восстанавливаемой БД сразу после того, как журнал транзакций будет применен к ней повторно (roll forward)

Выделенное административное подключение               SQL Server «Yukon» представит выделенное административное соединение, которое может быть использовано администраторами для доступа к работающему серверу, даже если этот сервер заблокирован или недоступен по какой-либо иной причине. Эта возможность позволит администраторам выявлять причины проблем, возникающих на сервере, с помощью диагностических функций или операторов Transact-SQL

Улучшения репликации          Для распределенных данных SQL Server «Yukon» предоставляет новые возможности одноранговой (peer-to-peer) репликации, способность синхронизации с БД Oracle, а также использование протокола НТТР для репликации с мобильными устройствами. SQL Server «Yukon» включает также обновленный мониторинг репликации и улучшения масштабируемости

10 основных возможностей для разработки

Функция                              Описание

Совместимость с .NET Framework    В SQL Server «Yukon» обеспечивается возможность создавать объекты БД, используя знакомые языки, например Visual C#.NET и Visual Basic.NET. Разработчики также смогут создавать два новых объекта — пользовательские типы (user-defined type) и агрегаты (aggregate)

Технологии XML                Extensible Markup Language (XML) является важным стандартом для распространения данных между различными приложениями по локальным сетям и через Интернет. SQL Server «Yukon» будет способен сохранять XML-документы в естественном формате, определять XML-запросы и возвращать результаты их выполнения как XML-документы

ADO.NET 2.0                       Из новой поддержки типов SQL в Multiple Active Result Set, ADO.NET SQL Server «Yukon» будет развивать доступ и управление наборами данных (dataset) для достижения большей масштабируемости и гибкости

Усовершенствования Transact-SQL  Новые возможности языка для разработки масштабируемых приложений БД. Эти усовершенствования касаются обработки ошибок, новых черт рекурсивных запросов и поддержки новых возможностей ядра БД

SQL Service Broker            SQL Service Broker может быть использован как каркас в целях построения распределенных приложения для крупномасштабных бизнес систем

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

Web-службы                       В SQL Server «Yukon» разработчики получат возможность разрабатывать Web-службы на уровне БД, делая SQL Server слушателем (listener) протокола Hypertext Transfer Protocol (HTTP), предоставляя новые возможности доступа к данным для приложений, ориентированных на использование Web-служб

Поддержка XQuery            SQL Server «Yukon» будет включать развитые возможности XQuery, обеспечивающие управление XML-объектами на уровне данных, а также новый набор инструментов для создания Xquery

Улучшения полнотекстового поиска               SQL Server «Yukon» имеет мощные возможности полнотекстового поиска. Возможности каталогизации будут усилены для обеспечения большей гибкости при определении того, что нужно каталогизировать. Производительность запросов и масштабируемость будут разительно улучшены, а новые инструменты управления будут предоставлять большее понимание полнотекстовой реализации

Улучшения системы безопасности   Новая модель безопасности SQL Server «Yukon» разделяет пользователей и объекты и обеспечивает больший контроль над доступом к данным. Кроме того, все системные таблицы будут реализованы в виде представлений, обеспечивая больший контроль над системными объектами БД

10 основных возможностей для Business Intelligence

Функция                               Описание

Analysis Services                  В SQL Server «Yukon» Analysis Services перемещаются в сферу аналитики реального времени. SQL Server «Yukon» поможет распространять BI на каждом уровне вашего бизнеса — от усовершенствования масштабируемости до более глубокой интеграции с Microsoft Office

Data Transformation Services (DTS)   DTS является набором графических инструментов и программируемых объектов, которые могут использоваться для извлечения, трансформации и загрузки (ETL — extract, transform, load) данных из разнородных источников и перемещать их в один или несколько приемников. SQL Server «Yukon» представит полную переработку DTS, которая призвана обеспечить всестороннюю ETL-платформу

Глубинный анализ данных (Data Mining)        Будут представлены четыре новых алгоритма глубинного анализа данных, а также усовершенствованные инструменты и мастера, призванные упростить выполнение глубинного анализа данных для бизнеса любого масштаба

Reporting Services                Более простая интеграция бизнес-данных из разнородных источников и хранилищ данных в развитые, интерактивные отчеты, которые могут управляться и настраиваться через Web-браузеры

Поддержка кластеризации  Повышение доступности Analysis Services за счет поддержки кластеризации с восстановлением после отказа (failover clustering), усовершенствованной поддержки множества экземпляров, а также резервного копирования и восстановления объектов и данных Analysis Services

Ключевые индикаторы производительности

Key Performance Indicators Ключевые индикаторы производительности (Key Performance Indicator, KPI) обеспечивают предприятия и организации возможностью определять графические, настраиваемые бизнес-метрики, призванные помочь в генерировании и отслеживании ключевых корпоративных показателей

Масштабируемость и производительность      Такие функции, как параллельная обработка разделов (partition), создание удаленной реляционной оперативной аналитической обработки (remote relational online analytical processing, POLAP) или гибридной оперативной аналитической обработки (hybrid online analytical processing, HOLAP) разделов, распределенные разбитые на разделы кубы (partitioned cube), сохраняемые вычисления (persisted calculation) и упреждающее кэширование (proactive caching), значительно улучшат масштабируемость и производительность Analysis Services в SQL Server «Yukon»

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

Усовершенствование архитектуры   SQL Server «Yukon» представит новую архитектуру для Data Transformation Services (DTS). Эта архитектура включает два процессора:

Data Transformation Runtime (DTR) запускает пакеты DTS, выполняет задания, поддерживает схему пакета и обеспечивает службы для выполнения заданий.

Data Transformation Pipeline (DTP) извлекает данные из источников, применяет преобразования к столбцам данных и загружает данные в системы хранения данных

Взаимодействие с Microsoft Office System       Отчеты, обслуживаемые с помощью Report Server в Reporting Services могут запускаться в контексте Microsoft SharePoint Portal Server и приложений Microsoft Office System, таких как Microsoft Word и Microsoft Excel. Можно использовать возможности SharePoint для подписки на отчеты, создания новых версий отчетов и рассылки отчетов, а также открывать отчеты в Word или Excel для просмотра их HTML-версий

DB Design & Warehousing

Регистрационное имя sa — ваш «запасной ключ» от SQL Server

Рон Тэлмэйдж (Ron Talmage)

Вероятно, вам известно, что учетная запись sa не используется в аутентификации только средствами Windows. Это означает, что нет необходимости в пароле для нее, не так ли? «Не совсем так», — говорит Рон Тэлмэйдж.[sum]

Все знают, насколько важен пароль sa для обеспечения безопасности SQL Server, но справедливо ли это, если используется смешанный режим, то есть аутентификация средствами SQL Server в дополнение к аутентификации средствами Windows? Другими словами, если использовать аутентификацию только средствами Windows (интегрированную), можно ли игнорировать назначение пароля для учетной записи sa? Как следует из этой статьи, коротким ответом будет «нет»: вы не можете пренебрегать этим. Вывод такой: необходимо определять строгий пароль для sa для всех инсталляций SQL Server, даже если они используют аутентификацию только средствами Windows. Давайте ближе познакомимся с этой проблемой.

Отправная точка: ограничивающий доступ

Я начал с этого, когда пытался ответить на вопрос из открытой группы новостей. Один из пользователей спросил: «Существует ли какой-либо способ ограничить права администратора информационного центра на доступ к нашему SQL Server? Я очень заинтересован в защите нашего SQL-узла от стороннего руководства».

На самом деле, здесь две проблемы: одна из них относится к ограничению входа администраторов на SQL Sever, а другая — к сторонним (off-site) администраторам. Честно говоря, защита данных стороннего SQL Server намного более трудная проблема: для сетевого или локального администратора есть целый ряд способов получить доступ к информации на SQL Server. Как вы, возможно, знаете, сетевой или локальный администраторы могут останавливать, приостанавливать и запускать службы SQL Server и SQL Agent. И поскольку SQL Server не защищает паролем файлы данных или резервных копий, эти сторонние администраторы теоретически могут остановить службу SQL Server, скопировать файлы данных в иное расположение и присоединить к другому экземпляру SQL Server. Между прочим, это применимо и к файлам резервных копий: если сетевые администраторы осуществляют резервное копирование, то они могут также восстановить их в другом месте. (Шифрование ваших данных является наиболее сильным решением. SQL Server не поддерживает шифрование данных, но можно использовать решения сторонних производителей, например Secure.Data компании Protegrity — www.protegrity.com.)

Итак, как ограничить вход сторонних администраторов на ваш SQL Server? Здравый смысл подсказывает, что нужно запретить доступ к SQL Server или, что еще проще, просто удалить учетную запись BUILTIN\Administrators. Эта учетная запись автоматически добавляется при любой установке SQL Server, которая может использовать аутентификацию средствами Windows, и по умолчанию включена в серверную роль системного администратора (sysadmin). Она используется для предоставления прямых прав sa любой учетной записи Windows, подключающейся к SQL Server и обладающей административными правами на этом компьютере. Это может быть сетевой администратор, сетевая учетная запись с административными правами на этом компьютере или даже локальная учетная запись с административными правами на компьютере, где установлен SQL Server. Вот почему вы можете немедленно зарегистрироваться или подключиться к SQL Server сразу же после того, как установили его. Чтобы установить SQL Server, необходимо войти в систему, используя учетную запись, имеющую административные права (то есть принадлежащую к локальной административной группе), поэтому ваша учетная запись по умолчанию получает доступ администратора сервера на SQL Server по доверительному соединению.

А что произойдет, если удалить учетную запись BUILTIN\Administrators или удалить ее из серверной роли sysadmin, а также запретить ей доступ к SQL Server? Тогда такие пользователи, как сетевые администраторы (не имеющие явных прав доступа), не смогут больше устанавливать доверительную связь с SQL Server. Это, разумеется, работает, но является очень слабым решением. Я смог найти в Базе Знаний Microsoft только одну статью по данной проблеме — Q263712 "INF: How to Impede Windows NT Administrators from Administering a Clustered SQL Server", остроумно использующую для описания эффекта от удаления этой учетной записи более слабый термин «препятствовать» (impede), а не «предотвращать» (prevent).

Итак, что произойдет, если удалить учетную запись BUILTIN\Administrators? Наибольшим недостатком этого способа (по моему опыту) является то, что вы можете блокировать вход в вашу систему для самого себя!

Programming

Использование блокировок приложений

Рон Тэлмейдж (Ron Talmage)

Даже такие люди, как MVP (Most Valuable Proffessional), порой могут заняться изучением новых уловок, если им приходится отвлечься от своей основной работы по просьбе друзей. Узнайте вместе в Роном Тэлмейджем, как блокировки приложений могут работать для вас.[sum]

Когда дело доходит до выявления неисправностей, верхние строки списка приоритетов должны занимать проблемы параллелизма. Одним из способов сосредоточиться на параллелизме является рассмотрение того, как можно сгенерировать уникальные диапазоны чисел в интенсивно используемом сценарии. Посмотрите, с каким вопросом недавно обратился ко мне по электронной почте мой друг: «Я хочу написать программу генерирования новой последовательности порядковых номеров (serial number) для заданного идентификатора диапазона (range ID). Раньше мы использовали нашу собственную таблицу семафоров (semaphore table), но я надеялся применить транзакции SQL Server, чтобы обеспечить уникальность и параллелизм. Однако, опробовав ее, я получил неожиданные результаты и так было до тех пор, пока я не начинал каждую транзакцию с обновления. Существует ли более традиционный или стандартный способ решать эту проблему?»

Лучшим ответом на этот вопрос будет использование интересной, хотя и малоизвестной функции SQL Server 2000 — блокировок приложения. Но давайте сначала разберемся в проблеме, а уже потом поищем ее решение.

Вызов CryptoAPI из хранимых процедур

Грегори Э. Ларсен (Gregory A. Larsen)

Хранит ли ваш SQL Server уязвимые данные? Не хотите ли зашифровать или хэшировать какую-либо часть этих данных? В этой статье рассказывается вам, как вызывать CAPICOM с целью запуска CryptoAPI из кода T-SQL для хэширования или шифрования/расшифровки данных.[sum]

Прежде всего, что такое CAPICOM и CryptoAPI? CAPICOM является COM-объектом ActiveX (предоставленным Microsoft), который может использоваться для связи с CryptoAPI. CryptoAPI — это составнавая часть Windows (той же компании Microsoft), содержащая набор компонентов для шифрования, дешифровки и хэширования данных. CAPICOM позволяет легко вызывать CryptoAPI для выполнения различных хэширующих и шифрующих алгоритмов.

Что такое шифрование

Шифрование — это процесс, при котором к строке поддающихся интерпретации данных применяется алгоритм шифрования и ключ, называемый ключом шифрования, для создания зашифрованной строки данных. Зашифрованная строка содержит наборы бессмысленных символов. Процесс шифрования — улица с двухсторонним движением. Зашифрованные данные могут быть расшифрованы тем же самым ключом шифрования и алгоритмом, с помощью которых данные были зашифрованы. Таким образом, можно взять строку зашифрованных данных и получить из нее исходную строку значимых данных.

Что такое хэширование

Хэширование отличается от шифрования тем, что оно только шифрует данные. Подобно шифрованию процесс хэширования получает строку значимых данных, обрабатывает их и создает значение хэша. Это значение является строкой бессмысленных символов фиксированной длины. Различие между шифрованием и хэшированием заключается в том, что из значения хэша уже невозможно получить исходную строку. Таким образом, хэширование является однонаправленным; зашифрованные данные не могут быть расшифрованы.

Чтобы ближе познакомиться с Microsoft CryptoAPI и CAPICOM, посетите криптографический портал компании Microsoft — http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/cryptography_portal.asp

Как можно использовать CAPICOM/CryptoAPI

Не будет преувеличением сказать, что немалое число пользователей используют Web-приложения, которые запрашивают регистрационное имя и пароль. Эти регистрационные имена и пароли, весьма вероятно, хранятся в БД. Если так, то CAPICOM может быть использован с целью вызова CryptoAPI для хэширования пароля, — в вашей БД можно хранить хэшированный пароль вместо его открытого варианта. Преимущества этого подхода становятся очевидными, если вы также храните на SQL Server информацию о кредитных карточках. Полагаю, вам не хотелось бы, чтобы кто-нибудь, просматривая вашу БД, натолкнулся на открытые номера кредитных карточек? Используя функциональные возможности по шифрованию/дешифровке CryptoAPI, можно хранить номера кредитных карточек в виде зашифрованных полей БД.

Как установить CAPICOM

Установка CAPICOM — достаточно простой процесс. CAPICOM состоит из единственной библиотеки — capicom.dll, которую необходимо поместить в ваш каталог system32, а затем зарегистрировать. CAPICOM dll можно загрузить с web-сайта Microsoft Download Center.

После загрузки и извлечения пакета CAPICOM прочтите README.txt, поясняющий, как устанавливать CAPICOM. Для вызова CAPICOM из T-SQL необходимо установить CAPICOM на компьютер с SQL Server, на котором будет запускаться этот код T-SQL.

Нахождение непрерывных областей в наборах данных

Шридхар Баласубраманиам (Shridhar Balasubramaniam)

Почти девять лет назад Дэвид Розенштейн (David Rozhenstein) и его соавторы опубликовали теперь уже ставшую классической статью «Loop-free SQL Solutions for Finding Continuous Regions in Data» (see SQL Forum Journal, Vol. 2, No. 6 – Vol.3, No.1, Nov./Dec. 1993 – Jan./Feb. 1994). И, хотя Шридхар Баласубраманиам позаимствовал как ее название, так и структуру таблицы, он предлагает другое техническое решение поставленной в ней задачи.[sum]

Шридхар хочет посвятить эту статью своим родителям, отпраздновавшим 24 августа 43 годовщину брака. В начале года его отец пережил паралитический удар, и, по словам Шридхара, «если он увидит эту статью опубликованной — это поддержит его дух в борьбе с недугом». Наилучшие пожелания в восстановлении вашего здоровья, профессор Баласубраманиам!

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

Обработка ошибок в SQL Server: предпосылки. Часть 1

Эрланд Соммарског (Erland Sommarskog)

Эта одна из двух статей, посвященных обработке ошибок в SQL Server. Она рассказывает о том, как SQL Server (и в некоторой степени ADO) ведет себя, если происходит ошибка. В другой статье, «Реализация обработки ошибок с помощью хранимых процедур», вы найдете советы, как можно выявлять ошибки при написании хранимых процедур.[sum]

Во многих аспектах SQL Server является очень хорошей СУБД, позволяющей реализовать мощные решения с хорошей производительностью. Однако когда очередь доходит до обработки ошибок… Будем честны: обработка ошибок в SQL Server бедна. Это пестрая смесь не-всегда-согласованного поведения. Ее слабость заключается в том, что ваш контроль над обработкой ошибок довольно слаб, а для улучшенной их обработки, такой как подавление ошибок или их регистрация, необходимо получить помощь со стороны клиента. К сожалению, в зависимости от того, какую клиентскую библиотеку вы используете, можно обнаружить, что у нее есть свои причуды, порой загоняющие вас в угол, из которого нет действительно хорошего выхода.

В этой статье я расскажу сначала, из каких частей состоит сообщение об ошибке и как можно обнаружить, что в коде T-SQL имеется ошибка. Далее опишу возможные действия, которые SQL Server может выполнять в случае возникновения ошибки. Затем я опишу несколько возможностей, с помощью которых нужно контролировать обработку ошибок SQL Server, и в заключение разъясню, как ведут себя различные клиентские библиотеки от Microsoft, с преимущественным акцентом на ADO.

Эта статья написана для SQL Server 2000. Впрочем, основные принципы, изложенные в ней, те же, что и для SQL 7 и SQL 6.5, за одним исключением: насколько мне известно, так называемых ошибки, приводящих к прерыванию области видимости (scope-aborting), в SQL 6.5 не бывает. В текущей бета-версии следующего SQL Server под кодовым именем «Yukon» существует новая конструкция для обработки ошибок, которой я также очень коротко коснусь в данной статье.

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

Other

Мои любимые вещи

Том Моро (Tom Moreau)

Иногда стоит остановиться на минуту и насладиться запахом роз. В этой статье доктор Том Моро делится с читателями тем, что ему нравится и не нравится в работе администратора БД. Не пропустил ли он чего-нибудь?[sum]

Работа администратора БД немного отличается от деятельности обычного разработчика. Мне нравится представлять себя вратарем футбольной команды. К концу дня независимо от того, каким образом ошибочные данные попали в вашу систему или почему нужные данные исчезли из нее, администратор БД остается единственным, кто должен навести порядок. В этой работе есть свои плюсы и минусы. Давайте рассмотрим мой список.

Плюсы

Этот перечень не является исчерпывающим, но это то, что я действительно люблю в этой работе. Кто такой администратор БД и каковы его обязанности, в разных местах определяется по-разному. В моей организации администратор БД осуществляет администрирование, пишет коды, моделирует данные и выполняет целую кучу связанных с этим действий. Читая статью, не забывайте об этом.

Борьба с пожарами

О чем я говорю? Большинство людей обычно вздрагивают, когда слышат эту фразу. Не так давно девять шахтеров из западной Пенсильвании были спасены из подземного плена, когда ствол их шахты оказался затопленным. Вместо людей говорило выражение восторга на лицах спасателей, их семей, губернатора и всех присутствующих. В каком-то смысле это экзамен с проходным баллом в 100%. Это шанс испытать себя по-настоящему. На тебя смотрят люди и многое поставлено на кон — возможно, даже существование вашей компании. Больше всего это напоминает подготовку солдата к битве. Ты уже прошел тренировку. Ты полагаешь, что знаешь, что делать, но на самом деле неясно, как поведешь себя, пока не столкнешься с врагом лицом к лицу.

SQL и связанные с ним инструменты

Прежде чем посвятить себя SQL, я зарабатывал на жизнь (и набирался опыта), создавая программы на FORTRAN и C. Если честно, я любил FORTRAN, пока не появился C. Но это не была любовь с первого взгляда; мне не хватало формальных знаний C, а той литературы, которая имелась в моем распоряжении, было крайне недостаточно. После того, как я прочел несколько неплохих книжек по этой теме, мое отношение изменилось, и я решил, что языку C нет равных. Тогда-то я и познакомился с SQL.

Несмотря на то, что C позволяет вам программировать вплоть до «железа», не обращаясь к ассемблеру, SQL отличается от него тем, что разрабатывался с «прицелом» на управление данными. Отчетливо помню, что, начав использовать SQL, не испытывал к нему той антипатии, как это было при изучении C. Я считаю, что SQL вызывает привыкание, и уже не могу обходиться без него. Кроме того, в SQL вы начинаете иначе мыслить.

В SQL есть что-то притягательное. Мне нравится, когда читатели обращаются ко мне с проблемами, связанными с SQL (это тонкий намек), особенно когда я могу показать им решение, не использующее курсоров!

SQL не единственное достижение технологии, используемое мною в работе. К моим любимым инструментам относятся Profiler, Query Analyzer, SQL Enterprise Manager, Index Tuning Wizard, Perl, ERwin (называемый теперь AllFusion ERwin Data Modeler, www3.ca.com/Solutions/Product.asp?ID=260), Log Explorer и сам Windows 2000. Тридцать лет назад, чтобы скормить свои программы вычислительной машине, я использовал перфокарты. Теперь я набираю код на своем портативном компьютере.

 

(Возврат на основную страницу)

Hosted by uCoz