На переходе от Oracle7 к Oracle8

(Обзор литературы на русском языке по СУБД Oracle)

Анатолий Бачин, ИВЦ АИС


В настоящее время СУБД Oracle уже завоевал в России прочные позиции. Широко используются установки Oracle7.х на самых различных вычислительных платформах, новые проекты все более связываются с применением Oracle8, не за горами и Oracle8i (Oracle8.1 + Internet). В стране работают несколько учебных центров. Уже несколько лет подряд на русском языке регулярно издается журнал "Oracle MAGAZINE/Русское Издание". За последнее время вышло достаточно много изданий по тематике Oracle.

Поэтому сегодня, наблюдая в очередной раз смену поколений СУБД Oracle, впервые на вопрос: "Что Вы можете порекомендовать почитать про Oracle?" я с (почти) легким сердцем могу ответить: "Пожалуйста! Что Вам предложить: энциклопедию, справочник, руководство разработчика, руководство администратора базы данных, учебные издания или просто для размышления и удовольствия?!" Действительно, если до самого недавнего времени по всем продуктам Oracle на русском языке было издано всего лишь две-три книги (причем перевод одной из них был весьма сомнительного качества), то сегодня можно разыскать не менее девяти вышедших за неполный год книг по Oracle (см. приведенный ниже список литературы). И в самое ближайшее время ожидается еще несколько. Можно сказать, что книгоиздательский рынок зарегистрировал и ответил на явно повышенный читательский интерес к Oracle. Тем самым, в первый раз передача эстафеты от Oracle7 к Oracle8 не сопровождается информационным дефицитом и пиратским копированием невесть кем и как переведенной электронной документации. Это настолько приятно, что хотелось бы верить, что так будет всегда.

Но соответствует ли количество качеству?! Ко мне, как профессиональному администратору баз данных (АБД) Oracle и соавтору книги [1], часто обращаются с вопросами, ответы на которые прежде всего надо искать в литературе, в методическом изучении Oracle. Поэтому мне совсем не безразлично, что и какие книги по Oracle выходят в свет, кто и как их будет читать. Поэтому я хочу представить на Ваш суд свое видение, свое восприятие имеющейся в настоящий момент литературы. Приведенный ниже список изданных в течение года книг по Oracle составлен примерно по времени появления их в поле зрения московского читателя. Сразу оговорюсь, что наша книга [1] в нем поставлена первой лишь потому, что она действительно была первой книгой российских авторов по данной тематике и первой пришла к читателю. К сожалению, она издана малым, даже по нынешним меркам, тиражом и распространяется исключительно через издательство "Софтсервис" (root@softexpress.ru). В этом плане книги более "книжных", как бы сказать, издательств имеют более счастливые судьбы, и я хочу пожелать им хорошего спроса и большего читетельского внимания.

Прежде, чем порекомендовать что-либо для чтения и изучения и, тем самым, правильно сориентировать обратившегося ко мне пользователя, я пытаюсь узнать, по какой причине проявился его интерес к Oracle. Кто Вы? Начинающий или уже опытный, продвинутый пользователь? Разработчик программ, АБД, IT-менеджер организации, применяющей или собирающейся применять систему Oracle? Может быть Вы - студент соответствующей специальности или же специалист другого направления, серьезно интересующийся каким-либо из продуктов Oracle и собирающийся связать с ним свою судьбу? Поверьте, это - не праздное любопытство, поскольку в некоторых отношениях многие названные в списке книги пересекаются, повторяют друг друга, содержат противоречащие друг другу неточности и типографские опечатки, а их физические параметры (габариты и вес) часто таковы, что могут ввести читателя в уныние и породить в нем неверие, что с такими книгами можно успешно работать.

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

Строго говоря, к учебной литературе следует отнести все книги, кроме [4]. Это и понятно. Когда практически пустой информационный сектор стараются одновременно занять несколько издательств, то скорее всего первыми должны появится книги, имеющие ярко выраженную учебную окраску, а также старающиеся в целом охватить все программные механизмы Oracle. Поэтому нетрудно видеть общие части большинства изданий: обзор и средства языка SQL, программирование на PL/SQL, то или иное введение в администрирование баз данных Oracle. Кто-то на этом останавливается, кто-то излагает языковые и инструментальные средства разработки приложений, Web-технологии Oracle и так далее.

Для студентов и начинающих пользователей предназначены прежде всего опусы [5] и [7]. Книга Эбби и Кори [5] являет собой, наверно, одну из самых классических книг по Oracle. В ее названии очень точно отражено ее назначение. Именно, "Первое знакомство", которое происходит как бы в несколько этапов: сначала общие сведения, затем обзор языковых (SQL и PL/SQL) и инструментальных средств: Oracle Forms, Oracle Reports, Oracle Loader, а начиная с главы 11 (если Вас заинтересовало уже прочитанное), содержится более углубленное введение в администрирование, настойку, применение языка SQL. Каждая глава начинается небольшим терминологическим словарем, далее просто и доступно излагается материал. Следует отметить, что объектная составляющая и другие отличающие Oracle8 особенности описаны на первых страницах. Далее же идет почти дословная копия такой же классической книги этих же авторов "A Biginer's Guide. Oracle7.x" (Osborne/McGraw-Hill, 1995). Это должно в очередной раз подтвердить, что архитектура Oracle8 базируется и продолжает архитектуру Oracle7, что изучение Oracle7 дает надежную и долговременную основу для последующего перехода к Oracle8. К упущениям [5] следует отнести явно недостаточное внимание к вопросам и направлениям, связанным с сетевой архитектурой и тематикой. В целом, книга представляет собой прекрасный учебник, вполне достаточный для самостоятельной начальной профессиональной подготовки специалистов.

Учебное пособие [7] смотрится как конспект большого фрагмента из более общего курса лекций по информационным технологиям, прочитанного автором студентам своего ВУЗа. Свидетельством тому являются "висячие" упоминания не рассматриваемых в книге вопросов, недостаточное внимание к ключевым для архитектуры Oracle вопросам (например, клиент/сервер), нелогичная, на первый взгляд, структура построения материала. (Ну, зачем, скажите, давать уже в первой главе сводку типов блокировок, когда толком не введено даже понятие "таблица"?) В изложении наличествуют многочисленные недомолвки, неточности и прямые ошибки. В частности, меня смутила лихость, с которой автор излагает архитектуру памяти, не вводя понятий "блок" и "экстент", автор не понимает, например, различий в операторах комментариев в SQL*Plus и PL/SQL, а чего стоит такая фраза на стр. 48: "Последовательность (SEQUENCE) - это объект, обеспечивающий генерацию уникальных номеров в условиях многопользовательского асинхронного доступа" (!?), и многое-многое другое. Надо отметить, что [7] написана хорошим языком, издана в очень удобном формате, но рекомендовать к использованию ее можно лишь лицам, не собирающимся далее работать с Oracle, или студентам, сдающим экзамен у г-на С.Смирнова, поскольку другие преподаватели могут по иному представлять себе архитектуру Oracle.

Самую большую группу из рассматриваемого списка составляет литература для опытных, уже поработавших с Oracle пользователей. Сюда входят опусы [1] (как справочник), [3] и [8] (скорее всего, руководства), а также [2] и [9] (энциклопедии). Подобное жанровое деление крайне условно и приведено только для того, чтобы немного точнее ориентировать читателя.

Называя [1] справочником, я имел в виду лишь то, что в формате и манере представления материала авторы стремились максимально отжать "воду" и удалить тривиальные примеры, сделать ее жесткой, четкой и короткой. Они рассчитывали на отечественных читателей, сформировавшихся специалистов с высшим техническим образованием, которым важнее понять принципы действия, нежели закрепить пройденный материал на практических примерах. В этом отношении переводные книги (и это их сильное качество) ориентированы на значительно менее подготовленного читателя. [1] состоит из трех примерно одинаковых частей ("утилита SQL*Plus и язык SQL", "средства и механизмы программирования на PL/SQL", "введение в администрирование базами данных и SQL*Net v.1 и v.2), написанных практикующими в этих областях профессионалами. В качестве приложений в книгу включены справочники по всем однострочным функциям и командам (с синтаксическими диаграммами!) языка SQL в Oracle7, по ключевым компонентам PL/SQL, по наиболее употребительным командам UNIX (взято из оригинальной документации Oracle). Если добавить к этому многочисленные таблицы в тексте, то такого обилия, такого богатства именно справочного материала нет ни в одной из других книг по Oracle на русском языке. Мне представляется, что материал по сетевой тематике SQL*Net v.2 в этой книге лучше, чем в других, но, естественно, сетевая тематика Net8 не нашла в ней места. К сожалению, эта книга, задуманная еще два года назад, вышла с некоторым опозданием, и к ее определению "первая" уже подмешалась горечь неполноты отражения современного состояния. Тем не менее, [1] можно рекомендовать там, где эксплуатируется Oracle7, тем специалистам, которые хотят иметь хорошую и краткую справочную книгу по Oracle. Она еще им пригодится при переходе на Oracle8.

Опус [8] в значительно большей степени относится к Oracle7, нежели к Oracle8. Но до выхода на русском языке книг Кевина Люни (Kevin Loney) и других Oracle-классиков я смело могу причислить ее к настольным книгам АБД Oracle. Очевидно, что [8], как и [1], написана практикующими профессионалами, но она раза в 2,5 больше по объему и, так скажем, намного "шикарнее". В ней значительно больше, чем в других изданиях по Oracle8, сведений о параллельных серверах, распределенной среде, Net8 и т.д. По сравнению с [1] в [8] отсутствуют глава по языку SQL и справочники по командам, но текстовый материал и многочисленные листинги реальных запросов к реальным системным таблицам Oracle по настоящему интересны профессиональному администратору. Как справочник или учебник, который можно полистать в метро, [8] едва ли годится, но под рукой на рабочем месте АБД ей сегодня самое место. Стоит ли "сталкивать лбами" [1] и [8]? Пожалуй, нет. Если Вы спросите мое мнение, я порекомендую Вам изучить [1], чтобы понять, почему я так восхищаюсь [8]. И последнее, в книге я заметил несколько досадных опечаток, которые могут вызвать недоумение и разочарование недостаточно опытного АБД.

Держа в руках два первых тома издания DiaSoft ([2] и [3]), довольно забавно отметить, как смещены их названия. [2] ("Энциклопедия") скорее является руководством разработчика, поскольку помимо общих глав по архитектуре сервера базы данных Oracle и языкам SQL и PL/SQL, опус на три пятых объема посвящен разработке приложений и инструментальным Oracle-средствам разработки приложений. Стоит только назвать несколько глав: "Объектно-ориентированное программирование с помощью пакетов", "Designer/2000", "Developer/2000", "Oracle Forms", "Oracle Report 2.5", "Oracle Power Objects", "Oracle Objects for OLE", OBDC и "Библиотека классов С++", Web и другие. С другой стороны, [3] ("Руководство разработчика") явно состоит из нескольких книг, написанных разными авторами, с явными повторениями уже прошедших материалов, но именно вследствие этого имеющих самостоятельную ценность. В отдельную книгу можно вынести части I-III (Сингх и др.), посвященную описанию архитектуры сервера Oracle и опять же языкам SQL и PL/SQL, часть IY "Проектирование и реализация базы данных Oracle" , раздел Y "Разработка приложений Oracle", посвященный методологии, а не инструментарию, очень интересна группа глав частей YI и YII "Поддержка и сопровождение производственной системы Oracle" и "Преодоление трудностей". В последней "книге" "Другие возможности Oracle" рассказывается о параллельной и распределенной обработке, защищенном (trusted) Oracle и поддержке национальных языков. Два справочных приложения и глоссарий завершают [3]. Я долго не мог понять, почему при явном крене в администрирование [3] названа "Руководство разработчика"? И почему так непоследовательно и на столь популярном уровне Л.Сингх написал свою часть? Там более, что его квалификация, заявленная при написании трех глав [2], сомнению не подвергается. На ум приходит довольно неожиданный и несколько парадоксальный ответ. Эти разделы написаны не для профессиональных АБД, а именно для разработчиков, то есть автор придал необходимые широту и глубину сведениям по архитектуре и функционированию системы, необходимым именно для разработчиков и совершенно, естественно, недостаточным для АБД. В этом случае становится понятным и самое название книги. Это руководство не по использованию инструментальных средств, но по построению и поддержке производственной операционной среды, в которой будут функционировать разрабатываемые приложения. Насколько такое толкование соответствует действительности, покажет время и читатели [3].

Необходимо отметить, что толкование терминов, приведенных в глоссарии [3], достаточно существенно расходится с учебной, технической и другой литературой по Oracle. Буквальный перевод технического сленга часто порождает совершенно непонятные и неправильные русские выражения. Это отмечено не только в сфере Oracle и не только для этой книги. Почти все переводные книги страдают из-за неточного использования терминологии и в ряде случаев недостаточно квалифицированного научного редактирования. (Например, "блок заголовка" и "заголовок блока" являются совсем разными понятиями, но очень часто используются именно неправильно [8].) Забавно видеть, например, заявление, что Oracle Server7 не реализован для UNIX-систем [2], а размер блока данных может быть 16 Mb ([2] и осталось без исправления в [9]). Также я категорически не рекомендую вносить изменения в таблицы словаря данных при помощи команд CREATE, ALTER, DROP ([3] стр.30). В оригинале, безусловно, имелось в виду опосредованное изменение таблиц словаря при использовании упомянутых команд в прикладных программах.

Опус [9] ("Энциклопедия Oracle8") является осовремененной переработкой [2]. По сравнению с ней в [9] произведена перекомпоновка материала, исключен ряд устаревших глав (например, "Oracle Power Objects" и др.), но введены главы по современным программным продуктам (Enterprise Manager, Designer/2000 и Developer/2000, Web,...), резко улучшено качество научного редактирования (К.А.Птицин), на 20% увеличен объем книги, приложен другой CD-ROM. Здесь впору вспомнить крылатое выражение: "Энциклопедия устаревает еще до выхода из типографии, но живет вечно!" Так оно есть и будет! Заменяет ли [9] опус [2]? Без сомнения. Но тем, кто уже купил [2], но пока не переходит на Oracle8, торопиться с покупкой [9], скорее всего не следует. С радостью будем ожидать выхода "Энциклопедии Oracle8i", "Энциклопедии Oracle9" и далее.

Вообще жанр продолжений очень популярен в Oracle-литературе. Так самая маленькая (115 стр.) из всех книг списка [4] является продолжением значительно более емкой книги тех же авторов "Oracle Design" (O'Reilly & Associates, Inc., 1997), вышедшей всего за полгода до английского оригинала [4]. А [6] - современная версия классической книги Steven M.Bobrowski "Oracle7 & Client/Server Computing" (SYBEX, 1994), выпущенной в русском переводе издательством "Лори" пару лет назад. Эти книги, с Вашего разрешения, я отнесу к разряду "для размышления и удовольствия". Опус Д.Энсора [4] предназначен для продвинутых консультантов, разработчиков приложений, АБД, которые хотят поговорить и поспорить на своем квалификационном уровне с очень опытным коллегой, узнать его мнение о новых возможностях Oracle, воспользоваться его рекомендациями в стратегических вопросах. Поскольку подобные вопросы непреходящи, [4] можно читать не спеша, перечитывать по отдельным главам. И очень жаль, что издательство не рискнуло сделать перевод основной книги "Oracle Design", такой же основательной и полезной, но значительно более толстой.

Стив Бобровски в [6] не столь многословен, как в предыдущей книге, но это пошло ей только на пользу. Книгу отличает глобальный подход: сразу используются основные понятия, как бы предполагая основательное предварительное с ними знакомство. Новичку скорее всего должно быть не понятно почему в такой последовательности и в именно таком объеме следует изложение. Для опытного пользователя такой подход возражений не вызывает: надо возобновить чуть подзабытые основы, посмотреть на свои знания немного с другой стороны. Великолепный самотренинг! К лучшим следует отнести материалы по блокировкам (глава 9 "Алгоритмы совместного доступа к базам данных") и обзор архитектуры и механизмов распределенной базы данных (глава 11 "Распределение и тиражирование данных"). Глава 5 "Расширение Oracle при помощи объектов", на мой взгляд, является лучшим материалом по этому направлению из всего, что есть в русскоязычной литературе. Нельзя не сказать о великолепном предисловии к [6] Кена Джекобса, вице-президента корпорации Oracle по стратегии серверных технологий, которое само по себе представляет большую информационную ценность для всех, кто профессионально работает с системой Oracle.

Итак, пред нами почти десятка довольно разных, но где-то и пересекающихся книг по вчерашнему, сегодняшнему и чуть-чуть завтрашнему Oracle. Что же конкретно посоветовать конкретному читателю, чтобы он получил нужные ему сведения, чтобы не загромождать его полки и не вводить в лишние расходы, чтобы вызвать в нем интерес и удовольствие:

А. Рекомендуемая литература:

Б. О прилагаемых к книгам CD-ROM:

- не стоит сильно уповать на прилагаемые к книгам компакт-диски. Так, примеры, помещенные на CD в [3], поместились бы и на старой дискете емкостью 360 Kb даже без архивирования, а все остальное являет собой демо-версии продуктов третьих фирм, в частности, CASE-системы (Easy CASE Test Drive, EasyER и ERWin). Компакт-диск, приложенный к [9] содержит ряд свободно распространяемых демо-версий продуктов, разработанных Platinum, Erwin, Crystalr, Rrwriter и др., две книги по Oracle 1995 и 1996г. издания издательства SAMS Corporation и некоторые общеизвестные утилиты.

В. Личное и корпоративное:

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

Г. Перспективы:

- следите за книжным рынком. Издательство "Лори" уже или вот-вот выпустит еще две-три книги по Oracle, в том числе "Oracle8. Программирование на языке PL/SQL" С.Ульмана и "Oracle8. Настольная книга администратора" К.Люни. Не пропустите!


Список русскоязычной литературы по Oracle

1. В.Юринский, А.Бачин, В.Абрамов "Oracle7. Практическое руководство" (М.: "Софтсервис", 1997, 420 стр.).

2. М.Ричардс и др. "Oracle7.3. Энциклопедия пользователя" (К.: "ДиаСофт", 1997, 830 стр.), [оригинал: Michael Richards at al. "Oracle. UNLEASHED" SAMS Corporation, 1996].

3. Сингх, Лей, Сафьян и др. "Oracle7.3. Руководство разработчика" (К.: "ДиаСофт", 1998, 730 стр.), [оригинал: Singh, Letgh, Zafian, et al. "Oracle7.3. Developer's Guide" SAMS Corporation, 1997].

4. Д.Энсор, Й.Стивенсон "Oracle8: Рекомендации разработчикам" (К.: Изд.группа BHV, 1998, 126 стр.), [оригинал: Dave Ensor and Jan Stevenson. "Oracle8 Design Tis" O'Reilly & Associates, Inc., 1997].

5. М.Эбби, М.Кори "Oracle8: Первое знакомство" (М.: "Лори", 1998, 470 стр.), [оригинал: Michael Abbey, Michael J.Correy "Oracle8: Biginer's Guide" Osborne/McGraw-Hill, 1997].

6. С.Бобровски "Oracle8: Архитектура" (М.: "Лори", 1998, 210 стр.), [оригинал: Steve Bobrowski "Oracle8. Architecture" Osborne/McGraw-Hill, 1998].

7. С.Смирнов "Работаем с Oracle" - Учебное пособие - (М.: "Гелиос", 1998, 318 стр.).

8. В.Пэйдж, Н.Хьюз и др. "Использование Oracle8" - Специальное Издание - (К.; М.; СПб.: "Вильямс", 1998, 752 стр.); [оригинал: William G Page, Jr., and Nathan Hughes, et al. "Using Oracle8. Special Edition" Que Corporation, 1998].

9. Компания Advanced Information Systems и др. "Oracle8. Энциклопедия пользователя" (К.: "ДиаСофт", 1998, 864 стр.), [оригинал: Advanced Information Systems, INC., et al "Oracle. Second Edition. UNLEASHED" SAMS Corporation, 1997].