oldi

Что переводится в издательстве «Вильямс»

Наталия Елманова

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

Начнем с классического труда К.Дж.Дейта «Введение в системы баз данных» (C.J. Date, «An Introduction to Database Systems», 7th Edition, Addison-Wesley, 2000). После этого мы поговорим о книге Дэвида Джордана «Работа с объектными базами данных в С++. Программирование по стандарту ODMG» (David Jordan, «С++ Object Databases. Programming with the ODMG Standard»). Затем обсудим книгу, посвященную одной из популярнейших ныне технологий, Поля Дж. Перроуна и Венката С.Р. «Кришна» Р.Чаганти «Создание корпоративных систем на основе Java2 Enterprise Edition. Руководство разработчика» (Paul J. Perrone, Venkata S.R. «Krishna» R. Chaganti, «Building Java Enterprise Systems with J2EE», Sams Publishing, 2000). А завершим наш обзор книгой Николаса Чейза «Active Server Pages 3.0 на примерах», адресованной начинающим Web-программистам (Nicholas Chase, «Active Server Pages 3.0 from Scratch», QUE, 2000).

Книга К.Дж.Дейта «An Introduction to Database Systems», известная российскому читателю под названием «Введение в системы баз данных», является одним из самых авторитетных источников знаний о принципах построения и использования баз данных и вот уже 25 лет пользуется заслуженной популярностью у разработчиков и системных аналитиков.

Седьмое издание книги, существенно переработанное (предыдущее выпущено издательством «Вильямс» в прошлом году), состоит из шести частей. Первая часть посвящена основным концепциям построения баз данных, в частности реляционных. В ней объясняется, что представляют собой модель данных, база данных, реляционные базы данных и чем они отличаются от других типов баз данных, объясняется понятие архитектуры систем баз данных, а также содержится введение в язык SQL.

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

Третья часть книги, также подвергшаяся переработке, посвящена теории и практике проектирования данных и моделям «сущность-связь». Она рассматривает функциональные зависимости, принципы и процесс нормализации, а также различные нормальные формы. Эта часть дополнена разделами, посвященными денормализации и ортогональному проектированию, а также альтернативным подходам к логическому проектированию данных.

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

В пятую часть вошли различные дополнительные темы, такие как безопасность данных, оптимизация, распределенные базы данных. Эту часть книги дополнили несколько очень интересных глав, освещающих вопросы наследования типов и баз данных, хранящих время создания каждой записи, а также глава, посвященная созданию хранилищ данных, витрин данных, OLAP, поиску закономерностей (Data Mining) и поддержке принятия решений. Этой, на мой взгляд, весьма интересной и актуальной тематикой наш книжный рынок пока, увы, читателей не балует, и не исключено, что перевод седьмого издания книги Дейта окажется чуть ли не единственным для русскоязычных читателей источником сведений о хранилищах данных, OLAP и Data Mining, если, конечно, не считать редких статей в периодических изданиях и относительно нового сайта http://www.olap.ru/.

В шестой части книги рассмотрена тема объектно-ориентированных баз данных. Она включает анализ основных подходов к созданию объектно-ориентированных баз данных, а также рассматривает совместное использование объектно-ориентированного и реляционного подходов.

Помимо этих шести частей книга содержит два новых приложения, первое из которых представляет собой справочник по синтаксису и семантике языка SQL, а второй — по синтаксису и семантике языка SQL3, применяемого в объектно-реляционных СУБД.

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

Книга Дэвида Джордана «Работа с объектными базами данных в С++. Программирование по стандарту ODMG» (David Jordan, «С++ Object Databases. Programming with the ODMG Standard») посвящена объектно-ориентированным базам данных (ООБД) и созданию приложений, их использующих. Она описывает не конкретные реализации ООБД, а стандарт ODMG1, поддерживаемый многими производителями объектно-ориентированных СУБД и средств проектирования данных. Создание приложений с такими базами данных основывается на том, что и база данных, и клиентское приложение используют одну и ту же объектную модель, что нередко упрощает проектирование и того, и другого.

Первая часть книги посвящена проектированию объектно-ориентированных баз данных. В первой главе данной части обсуждаются принципы создания схемы данных и проектирования соответствующих классов приложения. Далее рассматриваются компоненты стандарта ODMG, требования к объектным моделям баз данных и приложений, а также требования к СУБД, удовлетворяющим таким стандартам, в частности поддержка языков C++, Java либо Smalltalk, поддержка кодогенерации на основании языка ODL (Object Definition Language, подмножество CORBA Interface Definition Language). Вторая глава посвящена понятию транзакций в объектно-ориентированных базах данных, а также классам ODMG, реализующим транзакции. В третьей главе описаны принципы проектирования данных для ООБД, в частности понятия сущности, связи, домена, а также понятия, не встречающиеся при проектировании «классических» реляционных СУБД, такие как коллекции, комплексные объекты, агрегаты. Эти понятия более детально анализируются в последующих главах, при этом рассматриваются и соответствующие классы клиентских приложений. В частности, в этой части содержатся главы, посвященные доменам, сущностям, сохраняемым в базе данных, способам идентификации объектов с помощью ссылок и с помощью ключевых атрибутов, коллекциям и операциям над ними, описанию связей между объектами, а также составным объектам.

Вторая часть книги рассматривает язык запросов ODMG OQL (Object Query Language), операторы которого могут быть встроены в клиентское приложение либо выполнены из специализированного средства для выполнения запросов. Этот язык — непроцедурный (каковым и положено быть языку запросов); он включает в себя операторы SQL, а также расширения, требующиеся для обращения к нереляционным типам данных.

Третья часть книги посвящена архитектуре приложений, использующих объектно-ориентированные базы данных, в частности логическим и физическим частям таких приложений, архитектуре «клиент/сервер», использованию кластеров и распределенных баз данных, многопользовательскому доступу к данным. Здесь же рассматриваются приложения, манипулирующие метаданными.

В четвертой части книги автор проводит сравнение объектно-ориентированных и реляционных баз данных, а также рассматривает поддержки объектных типов данных в языке SQL3 (более подробно об SQL3 можно прочесть в книге Дейта, уже представленной в этом обзоре).

В конце книги содержится обширный справочный материал по классам и метаклассам ODMG.

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

Данную книгу можно порекомендовать разработчикам, владеющим объектно-ориентированным программированием с помощью С++ и желающим ознакомиться с объектно-ориентированными базами данных и основными принципами создания приложений, их использующих. Отметим, что, несмотря на наличие довольно большого количества зарубежных книг, посвященных объектно-ориентированным базам данных, на российском книжном рынке аналогов подобной литературе пока не было.

Книга Поля Дж. Перроуна и Венката С.Р. «Кришна» Р.Чаганти «Создание корпоративных систем на основе Java2 Enterprise Edition. Руководство разработчика» («Building Java Enterprise Systems with J2EE», Paul J. Perrone and Venkata S.R. «Krishna» R. Chaganti), русский перевод которой должен выйти в первом квартале 2001 года, предназначена для специалистов, занимающихся выбором архитектуры, проектированием и разработкой систем масштаба предприятия. В ней рассматриваются модель программирования Java2 Enterprise Edition (J2EE), архитектура созданных с помощью этой платформы распределенных информационных систем, способы повышения их надежности и безопасности, а также всевозможные технологии распределенных вычислений, применяемые совместно с J2EE. Актуальность этой книги не вызывает сомнений: известно, что платформа J2EE в настоящее время становится все более и более популярной среди разработчиков.

В книге семь частей. Первая, вводная часть посвящена компонентам системы масштаба предприятия. Она содержит описание жизненного цикла информационных систем, базирующихся на объектно-ориентированном подходе, обсуждение компонентного подхода к созданию информационных систем, основы языка Java, а также модели программирования и архитектуры J2EE. Здесь же обсуждаются компоненты для создания пользовательского интерфейса Java-приложений — Java AWT (Abstract Windowed Toolkit), библиотеки Java Swing, компоненты для отображения графики и мультимедиа, а также компоненты для создания пользовательского интерфейса в виде Web-страниц. Завершается первая часть главой, посвященной компонентам JavaBeans.

Во второй части книги рассмотрены базы данных, применяемые в системах масштаба предприятия, и вопросы доступа к данным из Java-приложений. Также содержится краткое введение в теорию реляционных СУБД и проектирование данных, минимально необходимое описание языка SQL и обсуждение концепции объектных баз данных. Две из трех глав этой части отведены JDBC (Java Database Connectivity) — универсальному механизму доступа к данным из Java-приложений, в частности к его архитектуре, JDBC-драйверам, работе с наборами данных, обращению к серверным объектам, распределенным транзакциям.

Третья часть книги посвящена распределенным системам и способам организации взаимодействия их компонентов с помощью локальных сетей и Internet. В ней рассмотрены применение сетевых и Internet-протоколов, базовые принципы построения Web-приложений, а также применение технологии CORBA (Common Object Request Broker Architecture) для организации распределенных вычислений, базовые понятия этой технологии — ORB (Object Request Broker), используемые протоколы, язык IDL (Interface Definition Language), принципы генерации клиентского и серверного кода, применение репозитариев интерфейсов и реализаций. Обсуждается применение RMI (Remote Method Invocation) — технологии создания распределенных объектов, интегрированой c Java Development Kit, а именно ее архитектура, диалект IDL, правила генерации кода клиентских и серверных объектов, принципы активации объектов. И наконец, достаточно подробно рассмотрены технология Microsoft COM и ее базовые понятия — интерфейсы, библиотеки типов, сервисы COM, COM IDL и правила генерации Java-кода на его основе, а также способы организации доступа к DCOM-объектам.

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

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

В шестой части книги рассмотрены различные аспекты создания Web-приложений — Web-серверы и браузеры, создание клиентского и серверного кода с помощью скриптовых языков и ASP, применение XML, а также XML Document Object Model и SAX (Simple API for XML). Помимо этого рассматривается применение сервлетов (архитектура, жизненный цикл, интерфейсы, обработка запросов, конфигурация и управление) и Java Server Pages (архитектура JSP-приложений, основы языка, директивы компиляции, манипуляция объектами, конфигурация и развертывание JSP-приложений).

Седьмая часть книги посвящена применению серверов приложений и EJB (Enterprise Java Beans). В ней обсуждается архитектура EJB, их конфигурация и развертывание, вопросы безопасности EJB, совместное применение EJB и CORBA.

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

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

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

Книга Николаса Чейза «Active Server Pages 3.0 на примерах» (Nicholas Chase, «Active Server Pages 3.0 from Scratch»), издание на русском языке которой должно выйти в первом квартале 2001 года, представляет собой относительно компактное пособие по созданию ASP-приложений. Оно призвано научить создавать интерактивные Web-сайты, использующие базы данных, с помощью ASP. Книга предназначена для начинающих Web-программистов, не имеющих каких-либо навыков в программировании или Web-дизайне. Объяснив вначале, что такое WWW, HTML и Internet Information Server, автор, шаг за шагом усложняя задачу и объясняя на примерах основные концепции создания Web-приложений, подводит читателя ни много ни мало к созданию Internet-магазина, позволяющего осуществлять удаленное администрирование данных и содержимого сайта.

Книга включает девять глав. Первая из них посвящена планированию будущего Web-сайта и основам создания Web-сайтов. В частности, она содержит сведения об администрировании Internet Information Server, краткое введение в HTML и Web-дизайн. Вторая глава посвящена применению Visual InterDev и FTP-клиентов, а также краткому введению в ASP. Третья глава посвящена созданию простейшего интерактивного сайта. В четвертой описано создание ASP-приложений, использующих базы данных. В ней же содержатся самые необходимые сведения о языке SQL, проектировании данных и об универсальных механизмах доступа к ним. В пятой главе рассказывается о том, как добиться персонализации при доступе к сайту, используя cookies — файлы, создаваемые браузером на компьютере пользователя.

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

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

Написаная достаточно простым языком, книга содержит все необходимые объяснения, требующиеся для понимания используемых технологий и приемов. Все объясняемые в ней идеи, концепции и технологии сопровождаются примерами ASP-кода, что позволяет тут же воспроизвести изученный материал или применить его на практике. В целом ее можно смело рекомендовать всем, кто нуждается в создании «с нуля» интерактивных Web-сайтов, использующих базы данных, и вынужден немедленно начать работу над подобными проектами.

Отметим, однако, что «быстрый старт» обычно предполагает дальнейшее более глубокое изучение технологий, поэтому, начав с книги Николаса Чейза (отнюдь не претендующей на всесторонний обзор всех технологий, применяемых совместно с ASP, — у нее совсем другая цель), стоит в дальнейшем обратить внимание и на другие источники, например «Professional Active Server Pages 3.0», Wrox Press, 2000. К большому сожалению, книги этого издательства, равно как и многих других, на русский язык пока не переведены; поэтому могу порекомендовать только оригинальное издание. Впрочем, оно вполне доступно жителям России — хотя бы в тех же Интернет-магазинах...

Более подробные сведения о русcких переводах этих книг можно найти по адресу:http://www.williamspublishing.com/.

КомпьютерПресс 1'2001