|
Я описал то, что
мне показалось наиболее важным,
- базу данных Oracle и ее архитектуру.
Т.Кайт
Все администраторы баз данных и разработчики приложений Oracle знают или по крайней мере слышали имя Oracle-классика Тома Кайта, хотя рецензируемая книга является чуть ли не первым его крупным произведением на английском языке, а уж тем более книжным переводом на русский. Так много статей, заметок, рекомендаций, ответов на вопросы и советов щедро разбросал и продолжает разбрасывать Том Кайт, что каждый из нас хоть раз воспользовался его опытом, прочитав статью, ответ или рекомендацию в колонке «Ask Tom», или побывав на его сайте, или получив ссылку от более умудренных своих товарищей.
Кайт – практически абсолютный и непререкаемый авторитет в вопросах архитектуры, администрирования и настройки Oracle. Его цитируют, на него ссылаются, ему пишут письма и задают вопросы, а потом хвастаются полученными ответами. Поэтому, увидев эту рецензию, кто-нибудь из читателей удивится, зачем нужно было давать оценку его книге, если все и так знают, что все написанное Кайтом очень интересно (и почти свято) для профессиональных АБД Oracle. А все недочеты, которые должны выявить рецензенты, следует переадресовать переводчику, редактору, издательству...
Все это так и есть, все это правильно и справедливо. И не стоило бы писать эти заметки только для того, чтобы лишний раз похвалить талант и опыт Т.Кайта, как АБД Oracle (кстати и других баз данных тоже: Sybase, Informix, SQL Server, но главное, конечно, - Oracle). Но эта книга написана не только и не столько для АБД Oracle, сколько для разработчиков приложений и еще более для руководителей проектов, руководителей команд разработчиков приложений, работающих с базами данных Oracle. Одно из принципиальных основных положений Т.Кайта:
«... работать, не понимая устройства СУБД, просто нельзя». И он проводит и доказывает эту мысль на протяжении своей книги. Подспудно и явно (особенно в первой главе «Разработка успешных приложений для СУБД Oracle») обсуждается
мысль: «А нужен ли в команде разработчиков приложений профессиональный АБД?» Если Вы колеблетесь с ответом, прочитайте
подглавку “Возможности и функции» (т.1, стр. 66-68), где красочно описываются «достижения» проектировщиков, которые уже
были в ядре СУБД: репликации, очереди, автономные транзакции, – и это лишь вершина айсберга архитектурных и
административных возможностей, которые довольно часто заново изобретаются разработчиками сложных приложений.
Кайт иногда божественно бесхитростен и откровенен. Например: «Хороший разработчик – обычно очень плохой АБД, и наоборот. У них разные навыки и опыт, а также, по моим наблюдениям, разное устройство ума и личностные характеристики».
Реплика в сторону: И как, скажите на милость, после этого нам, разработчику приложений
В.Абрамову и АБД Oracle А.Бачину, считающимися в своем кругу весьма и весьма приличными профессионалами, продолжать
написание этой совместной рецензии?!! :o) :o)
В аннотации к книге от издательства «ДиаСофтЮП», в частности, говорится: «Если вы приступаете к изучению СУБД Oracle, - начните с этой книги». Вот уж что мы, рецензенты, ни как не можем посоветовать начинающим. Эта книга – не учебник, ее нельзя рекомендовать для чтения и изучения неподготовленному человеку, и это притом, что переведена она на очень хорошем литературном уровне и легко читается. (О недостатках, как всегда, позже ;).)
Сам Т.Кайт предназначает ее сложившимся профессионалам: «Целевой аудиторией являются все разработчики приложений для Oracle
как сервера баз данных. Книга написана для профессиональных разработчиков Oracle, интересующихся тем, как решить задачу
средствами этой СУБД». Более того, Т. Кайт совершенно недвусмысленно перечисляет, что должен знать читатель для получения
максимальной отдачи от книги: знать SQL, понимать PL/SQL, иметь определенный опыт работы с процедурным языком
программирования (C или Java), ознакомиться с руководством Oracle Server Concepts Manual. Ничего себе «начинающий»!
Книга насыщена, переполнена, искрится и блистает десятками (и даже сотнями!) примеров, методов решения задач, скриптов, случаев из жизни, описаниями ошибок и казусов… Но кто сочтет ее самодостаточной на все случаи своей Oracle-жизни, того ждет жестокое разочарование. Вместо последовательного и обстоятельного описания возможностей (во многом подобного переписыванию документации) Т.Кайт выбирает только самое для него вкусное, ставит и объясняет эксперименты вовсе не начального уровня, вдается в такие подробности, о которых мы только слышали. Чтобы не быть голословными, отметим, что:
- о блокировках на русском языке столько еще никто не писал, тем более о блокировках, определенных пользователем. (Разработчики, кто из вас об этом слышал?!);
- наконец-то внятно описаны все уровни изолированности транзакций;
- исследование объема данных, поступающих в журнал (redo log) транзакций при одиночных и групповых DML-операциях (insert, update, delete) – давняя и сокровенная мечта многих АБД;
- «Можно ли отключить генерацию записей в (redo log) журнал?» - нет! И что такое NOLOGGING;
- clustering_factor – ау, АБД! Кто сможет объяснить, что это такое и как можно использовать?!
- аналитические функции – им уделено порядка 50 страниц во втором томе.
И это только самое бросающееся в глаза. А что стоят такие манящие названия подглавок: «Плохие привычки при работе с транзакциями», «Что генерирует основной/наименьший объем данных отмены?», «Рекомендация создания материализованного представления», «Как реализована поддержка внешних процедур?», «Права вызывающего и создателя» и так далее. Вообще же почти о каждой главе и подглавке хочется написать отдельную рецензию. Но тогда уж точно читатели предпочтут познакомиться с оригиналом, чем с его пересказыванием рецензентами ;).
Чего в книге нет? Как ни странно, в ней практически нет классических (!) вопросов администрирования Oracle:
- управление физической и логической структурой БД;
- резервирование и восстановление;
- безопасность и аудит;
- прописывание и настройка сетевых взаимодействий (несколько слов о Net8 и то только в связи с внешними процедурами языке С) и т.д.
(Почти по А.С.Пушкину: «Ай да, Кайт! Ай да, ... сын!»)
В оригинале книга называется “Эксперт один-на-один с Oracle”. И это название, конечно, точнее данного ей в переводе.
Такое название во многом объясняет и подход автора, и отбор материала в книге, и уровень и манеру изложения.
Эксперт должен дать ответ, когда нет других источников. Для этого он использует свой инструментарий, которым щедро делится с нами. На русском языке приведены описания:
- набора STATSPACK;
- представлений V$EVENT_NAME, V$FILESTAT, V$TEMPSTAT, V$LOCK, V$MYSTAT, V$OPEN_CURSOR, V$PARAMETER, V$SESSION, V$SESSION_EVENT, V$SESSION_LONGOPS, V$SESSION_WAIT, V$SESSTATSESSIO, V$SQL, V$SQLAREA, V$STATNAME, V$SYSSTAT, V$SYSTEM_EVENT;
[Примечание А.П.Соколова: имя представления динамической производительности имеет префикс "V_$".
Префикс "V$" указывает на имя синонима такого представления.]
- основных стандартных системных пакетов (приложение A): DBMS_ALERT, DBMS_PIPE, DBMS_APPLICATION_INFO, DBMS_JAVA, DBMS_JOB, DBMS_LOB, DBMS_LOCK, DBMS_LOGMNR, DBMS_OBFUSCATION_TOOLKIT, DBMS_OUTPUT, DBMS_PROFILER, DBMS_UTILITY, UTL_FILE, UTL_HTTP, UTL_RAW, UTL_SNMP и отправка электронной почты, UTL_TCP.
Следует предупредить читателя, что не стоит надеяться на информацию из Приложения В,
в котором даются адреса изд. WROX для скачивания свободных кодов, консультаций и пр. Зайдя на днях на сайт этого издательства, мы не обнаружили там следов книги Т.Кайта. Зато мы можем Вас порадовать тем, что американское
издательство Apress переиздало в августе 2003 «Expert One-on-One Oracle» by Thomas Kyte. По адресу
http://www.apress.com/ApressCorporate/supplement/1/220/1590592433-1241.zip можно скачать файл размером 412K, содержащий свыше 360 SQL-скриптов и 25 параметрических CTL-файлов, опубликованных на страницах этого однотомного англоязычного издания.
Мы уже говорили, что перевод осуществлен на хорошем литературном русском языке.
Но встречаются пропущенные опытным, сведущим, уважаемым научным редактором В.Кравчуком такие лихости, как:
«В каждый момент времени работает только один экземпляр, но обращаться он может к разным базам данных, в зависимости
от задач, которые я решаю.» Надо ли говорить, что Т.Кайт имел в виду одну инсталляцию ПО Oracle, а для работы с
конкретной базой на одной и той же машине каждый раз поднимается свой и только свой экземпляр (instance) Oracle.
Досадно, что в переводе часто используется мелкие и более существенные отклонения от общепринятой
терминологии в русскоязычной документации по Oracle:
- «связываемые переменные» вместо «переменные связывания»;
- «одновременный доступ» вместо «конкурентный доступ»;
- «тщательный контроль доступа» вместо «детальный контроль доступа»;
- «фрагментация (partitioning) таблиц» вместо «секционирование таблиц» - это довольно серьезная
вольность, поскольку термин «фрагментация» несет совсем другой смысл.
Досадно в который раз писать о том, что redo log (журнал базы данных Oracle) не стоит
называть «журналом повторного выполнения», поскольку он применяется только при накате (rolling forward) базы при восстановлении (да еще в data mining & streams), о чем каждый раз предупреждает Т.Кайт и что, естественно, каждый раз отражается в переводе. Сколько было по этому поводу сломано копий в дебатах русских Oracle-идов, в частности, в серии очерков «О чистоте русского языка и точности терминологии», регулярно печатаемых в нашем журнале. И все же, нет-нет да всплывет где-нибудь «журнал повтора».
Но все это не затмевает главного радостного события. Книга Тома Кайта вышла на русском языке и
нашла своего читателя. Спасибо издательству "ДиаСофт" и всем, кто ее делал!
Нам приятно отметить, что в нашем журнале "Oracle Magazine/Русское Издание" часто публикуются произведения Т.Кайта: «Индексы по Функциям», "Автономные транзакции", «Миф: столбцы с максимальным количеством разных значений должны указываться первыми» - очень-очень скромный список его статей, опубликованных в разные годы. Вот и этом выпуске нашего журнала печатается перевод его колонки из мартовского (2003) номера «Oracle Magazine», а также V (завершающая) часть перевода А.П.Соколова первой главы из «Expert One-on-One Oracle» by Thomas Kyte,
предпринятого независимо от ее книжного издания.
Пусть эта рецензия послужит книге самой доброй рекламой и рекомендацией нашим читателям в том,
что такая книга должна быть в каждой организации, применяющей СУБД, приложения, технологии Oracle, под рукой АБД и преподавателя Oracle.
Вызовет ли опасение читателей, что практически весь материал книги построен на Oracle8.1.6?!
Напомним, что архитектура и технологии Oracle развиваются в основном экстенсивно, и, следовательно, практически ничего из приобретенных знаний и навыков не пропадает в дальнейшем. А, с другой стороны, история человеческой культуры знает много очень давно и хорошо известных и изученных книг (Библия, Коран, Тора, Упанишады, …), к которым постоянно обращаются, обращаются, обращаются люди.
Виктор Абрамов,
научный редактор "Oracle Magazine/Русское Издание"
Анатолий Бачин,
главный редактор "Oracle Magazine/Русское Издание" |