
Ноябрь 2004
Сделано в России
Александр Соколов
Компания РДТЕХ
(mailto:ap_sokolov@mail.ru)
под редакцией М. Р. Когаловского, (
mailto:kogalov@cemi.rssi.ru)
Oracle Streams: обсуждение терминологии
часть 1
[От редакции “Oracle Magazne/Русское издание”: этой публикацией мы начинаем новую серию статей, посвященных терминологии, используемой в переводах документации, статей и книг по Oracle. Предполагается, что эта серия будет продолжением публиковавшейся в нашем журнале в течение нескольких лет дискуссии “О чистоте русского языка и точности терминологии”. Основные отличия этого проекта, который пока не обрел своего постоянного названия и по первой статье очень похож на славную “Чистоту…”, в том, что:
- каждый выпуск будет посвящен какой-то одной теме, книге или направлению; и, кроме обсуждения терминологии, мы постараемся представить нашим читателям дополнительные материалы и источники информации по рассматриваемым вопросам;
- хотя обмен мнениями и выработка рекомендуемых вариантов терминов останется основным литературным приемом, техническая острота дискуссии уйдет внутрь, эксперты равноправно будут высказывать свои мнения, а краткий итог по каждому термину мы попросим подвести наших корифеев - А.П. Соколова и М.Р.Когаловского;
- проект “О чистоте русского языка и точности терминологии” возник на базе перевода комплекта документации по Oracle9i. Новая серия, мы надеемся, расширит эти рамки, как по искодному материалу – не только перевод документации, но и переводы книг и статей, а также терминология авторских произведений, включая лексику и терминологию преподавания Oracle-дисциплин.
Мы приглашаем любого из наших читателей принять участие в этом проекте своим вопросом, мнением, эссе по интересующим вопросам по Oracle-технологий вообще и наболевшим вопросам терминологии, в частности. ]
Содержание
Введение
Stream (Data Stream Management System, DSMS) - новое направление в технологиях баз данных, а именно, система управления потоками данных общего назначения. См., например, http://dbpubs.stanford.edu:8090/pub/2002-19, http://www-db.stanford.edu/stream/. Но как всегда корпорация Oracle идет своим путем, расширяя концепции и задействуя уже готовые средства LogMiner и Advanced Queuing.
Более подробно с технологией Oracle Streams на русском языке можно ознакомиться по статье Марка Ривкина "Oracle Streams – универсальное средство обмена информацией", напечатанной в нашем журнале в декабрьском выпуске 2003г. (http://www.oracle.com/ru/oramag/december2003/index.html?general_mstreams.html). Эта статья в основном базируется на двух технических документах корпорации Oracle:
Вместе с тем заметим, данная статья не претендует на образец использования отечественной терминологии – много профессиональных "американизмов".
Данная публикация была инициирована вопросами по переводу некоторых терминов Oracle Streams, возникшими у переводчиков и редакторов перевода комплекта документации сервера базы данных Oracle9i. В этот переводимый комплект руководства по Oracle Streams не входили, поэтому пришлось провести небольшое методическое исследование, результатами которого мы и хотим поделиться.
Публикация разделена на две части. В первой части приводятся материалы обсуждения перевода терминов Oracle Streams, а во второй части (в следующем выпуске OM/RE) – небольшой глоссарий терминов Oracle Streams, составленный на основании обсуждения терминов.
Обсуждение перевода терминов Oracle Streams
В обсуждении принимают обсуждение переводчики и редакторы перевода документации Oracle, а также специалисты по СУБД Oracle. Надеемся, все они являются читателями OM/RE.
streams propagation
Контекст.
A propagation propagates events from a Streams source queue to a Streams destination queue. (Oracle9i Streams)
М. Вольштейн (Mark.Volshtein@iti.ru). В глоссарии для "Streams propagation" утвержден вариант "распространение правил потоков Streams". По-моему, распространяются не правила, а события (см. Oracle9i Streams, Event Staging and Propagation)
Кроме того, я предлагаю несколько более коротких переводов термина "capture process":
- "процесс отслеживания" (так он переводился в Concepts, и редактор его принял),
- "процесс захвата",
- "процесс сбора данных". (Кроме того, текущий вариант неправилен – собираются не правила, а данные).
С. Мисюра (misiura@rdtex.ru). Вариант перевода "распространение событий [в среде Oracle Streams]" – приемлемый вариант. Но есть у него недостаток – в русском языке термин "распространение" не подразумевает конкретного адресата. Поэтому сказать "событие было распространено в базу данных назначения" нельзя, режет слух. Термин "передача", в отличие от термина "распространение", позволяет указывать конкретного адресата. Так что я бы предпочел вариант "передача событий [в среде Oracle Streams]". Можно не опасаться за "сведение" двух терминов – "propagation" и "transmission" в один – "передача". Любящие идти своим путем составители технической документации Oracle (я имею в виду оригинальную документацию на английском языке), термин "transmission", кажется, не используют. Короче говоря, предлагаю вариант перевода "передача событий [в среде Oracle Streams]", хотя и "распространение событий [в среде Oracle Streams]" кажется мне приемлемым.
А. Соколов (sokolov@protvino.net). В Oracle Streams при распространении событий как раз и не подразумеваются конкретные адресаты. Они просто помещаются в область хранения (очередь). Я согласен, в случае наличия конкретного адресата нужно использовать термин "передача".
Рекомендуемый вариант для использования в переводах, авторских статьях и обучении:
streams propagation - "распространение событий [в среде Oracle Streams]"
capture process
Контекст.
A capture process is an optional Oracle background process that reads the database redo log to capture DML and DDL changes made to database objects. (Oracle9i Streams)
М. Вольштейн. Я предлагаю несколько более коротких переводов термина "capture process":
- "процесс отслеживания" (так он переводился в Concepts, и редактор его принял),
- "процесс захвата",
- "процесс сбора данных". (Кроме того, текущий вариант неправилен – собираются не правила, а данные).
С. Мисюра. Поддерживаю вариант "процесс захвата [изменений] [в среде Oracle Streams]".
А. Соколов. Действительно "изменений", ведь для распространения "сообщений" используются процедуры Advanced Queuing (AQ).
Рекомендуемый вариант: capture process – "процесс захвата [изменений] [в среде Oracle Streams]"
apply process, apply process coordinator, apply server, logical change record
Контекст.
Определение apply process (из Oracle9i Streams):
An apply process is an optional Oracle background process that dequeues logical change records (LCRs) and user messages from a specific queue and either applies each one directly or passes it as a parameter to a user-defined procedure. The LCRs dequeued by an apply process contain data manipulation language (DML) changes or data definition language (DDL) changes that an apply process can apply to database objects in a destination database. A user-defined message dequeued by an apply process is of type SYS.AnyData and can contain any user message, including a user-created LCR. An apply process can be associated only with a SYS.AnyData queue, not with a typed queue.
An `apply proces` consists of the following components:
- A reader server that dequeues events. The reader server is a parallel execution server that computes dependencies between LCRs and assembles events into transactions. The reader server then returns the assembled transactions to the coordinator, which assigns them to idle apply servers.
- A coordinator process that gets transactions from the reader and passes them to apply servers. The coordinator process name is apnn, where nn is a coordinator process number. Valid coordinator process names include ap01 through ap99.
One or more apply servers that apply LCRs to database objects as DML or DDL statements or that pass the LCRs to their appropriate handlers. For non-LCR messages, the apply servers pass the events to the message handler. Each apply server is a parallel execution server. If an apply server encounters an error, it then tries to resolve the error with a user-specified error handler. If an apply server cannot resolve an error, then it rolls back the transaction and places the entire transaction, including all of its events, in the error queue.
А. Пересыпкин (aperesypkin@mail.ru). Предлагаю следующие варианты перевода:
- apply process
= процесс внесения изменений (совпадало со словарем ИТИ (словарь ИТИ – это глоссарий данной переводческой компании, основанный на глоссарии РДТЕХ, http://www.rdtex.ru/docs/glossary/ - А.С.))
- apply server
= сервер внесения изменений
- apply process coordinator = координатор внесения изменений
- coordinator process
= процесс-координатор
- logical change record
= логическая запись изменений
А. Соколов. При более внимательном рассмотрении предложенных вариантов перевода терминов в приведенном выше контексте кажется, что акцентируя внимание на "внесении изменений", мы не учитываем возможности наличия в потоках не только изменений, но и пользовательских сообщений. Поэтому представляется целесообразным предложить следующие варианты перевода:
- apply process
= процесс применения [изменений и сообщений]
- apply server
= сервер применения
- apply process coordinator = координатор применения
С.Мисюра. Поддерживаю вариант перевода "процесс внесения изменений". Вариант "процесс применения [изменений и сообщений]" не кажется удачным, поскольку в русском языке обычно применяют "знания", "опыт", "теорию", "законы" и другие абстрактные понятия, а такие конкретные понятия как "изменения" можно "вносить", "воспроизводить", "учитывать", но не "применять".
А. Соколов. Изменения, а тем более сообщения, не обязательно куда-то вносятся. Они передаются обработчикам (включая написанные пользователями), которые делают с ними все что хотят. Можно, конечно, попробовать вместо "применять" использовать синонимы типа "употреблять", "использовать". Но будет ли от этого лучше?
Вопрос к Справочной службе русского языка. В технических публикациях иногда встречаются фразы типа "применить чего-то к чему-то" (при переводе фраз с английским глаголом apply)? Правомерны ли такие конструкции: "применение изменений к БД" или, более расширенный вариант, "применение данных об изменениях к БД"?
Ответ. Корректно: применение чего-либо к чему-либо; но: применить что-либо к чему-либо.
В. Пржиялковский (prz@ccas.ru). А "применяющий процесс" и "применяющий сервер" не подойдет? Что именно за применение должно быть видно из контекста.
С. Мисюра. Согласен, что "применяющий процесс" и "применяющий сервер" лучше "процесса применения" и "сервера применения", но все-таки эти варианты мне не очень нравятся. Конечно, и у термина "процесс внесения изменений" есть свои недостатки. Во-первых, это применимо только к событиям, а для сообщений не очень подходит (как, впрочем и термин "apply" в оригинальной документации). Во-вторых, сокращенная форма "процесс внесения" тоже вызывает некоторое сопротивление. У меня есть еще 2 контрпредложения:
- "процесс-потребитель" и "сервер-потребитель",
- "процесс воспроизведения" и "сервер воспроизведения".
А. Соколов. "Процесс-потребитель" и "сервер-потребитель" – очень даже неплохо, поскольку в документации явно прописано: "Events that are staged in a queue can be consumed by the Streams apply process or by a user-defined subprogram".
Рекомендуемый рабочий вариант:
- apply process
= "процесс-потребитель"
- apply server
= "сервер-потребитель"
- apply process coordinator
= "координатор процесса-потребителя"
- coordinator process
= "процесс-координатор"
logical change record
Контекст.
См. выше.
С. Мисюра. Если я не ошибаюсь, этот термин (logical change record) обозначает "запись журнального файла [базы данных]". Может быть, так и оставить? А то термин "логическая запись изменений" порождает вопросы: "В чем запись?", "Бывает ли еще физическая запись изменений?", "Какое соответствие между логическими записями и изменениями?" И главное – трудно догадаться, что речь идет именно о записях журнального файла б/д.
А. Соколов. "logical change record" – запись, содержащая DDL- и DML-операторы, извлеченные из журнала БД, а не просто журнальные записи. Этот термин я пытался изменить на "запись логических изменений". Но лучше ли это? Ведь мы вроде бы смело используем такие термины, как "логическая резервная база данных", "физическая резервная база данных".
С. Мисюра. Я понимаю смысл этого термина так. В журнальных файлах находятся "записи физических изменений". Это означает, что команды DDL транслируются в последовательность DML-изменений таблиц словаря данных и в таком виде хранятся в журнальном файле. Под "логическим изменением" я подразумеваю реконструированные (из последовательности DML-изменений таблиц словаря данных) DDL-команды, плюс DML-изменения пользовательских таблиц (в этом случае реконструкция не требуется). То есть процесс захвата должен реконструировать команды DDL (чтобы эти изменения стали переносимыми). Те изменения, что получаются в результате реконструкции, должны, на мой взгляд, называться логическими (в отличие от "физических" в журнальных файлах). Поэтому я поддерживаю вариант "запись логических изменений".
Рекомендуемый вариант: logical change record - "запись логических изменений"
instantiation
В. Лейчинский (vleichinsky@inbox.ru) - читатель OM/RE, сертифицированный Oracle DBA, г.Минск.
Streams – новая технология репликации. Термин instantiate (instantiation, instantiation SCN) вроде бы должен применяться к начальной синхронизации реплицируемых таблиц путем согласования SCN. В документации (Part No. A96571-02) это довольно запутано, определения противоречат друг другу. Вот что там пишется в начале: “To instantiate an object means to create an object physically at a destination database based on an object at a source database.”
А далее: “the tables that already exist at the destination database are not instantiated. That is, because these tables already exist at the destination database, they are not created at the destination by exporting them at the source database and then importing them at the destination database. Instead, the apply process at the destination database must be instructed explicitly to apply changes that committed after a specific system change number (SCN) for each source database table. The instantiation SCN for the tables specifies this SCN.”
Переходя к конфигурированию Streams, в документации написано: “Prepare the tables for instantiation. These tables will be instantiated at dbs3.net. This step marks the lowest SCN of the tables for instantiation. SCNs subsequent to the lowest SCN can be used for instantiation. Also, this preparation is necessary so that the Streams data dictionary for the relevant propagations and the apply process at dbs3.net contain information about these tables.”
А вот как описывается процедура DBMS_CAPTURE_ADM.PREPARE_TABLE_INSTANTIATION в QuestSoftware Knowledge Xpert for Oracle Administration: “This procedure performs the synchronization necessary for instantiating the table at another database. Run this procedure at the source database. This procedure records the lowest SCN of the table for instantiation. SCNs subsequent to the lowest SCN for an object can be used for instantiating the object.”
Как я понимаю, термин instantiate взят почему-то из объектного программирования, хотя здесь идет речь о объектах базы данных, т.е. о таблицах. Кстати, в части XVI "О чистоте русского языка и точности терминологии" обсуждается noninstantable method. Термин instantiation используется и в предыдущей версии репликации (advanced replication).
Как же лучше перевести его в контексте Streams?
И. Абдуллин (irek@rdtex.ru). Я посмотрел в нашем глоссарии “instantiation”:
- экземпляр (реализации)
- конкретизация (понятия)
- C++ реализация (код, генерируемый при вызове шаблонной функции (templated function) для конкретного набора типов входных параметров )
Я всегда переводил “instantiation” – “создание экземпляра объекта”.
А. Соколов. В Энциклопедии Когаловского "Instantiation" – "порождение экземпляра". "Создание нового экземпляра данных рассматриваемого типа (или класса). Этот процесс является обратным по отношению к процессу классификации". Данное определение не противоречит контексту Streams.
М. Р. Когаловский. В хитросплетениях умозаключений, выстроенных специалистами Oracle, разбираться довольно затруднительно. Может быть, конечно, нужно использовать для этого более широкий контекст. Из приведенных фрагментов складывается впечатление, что здесь вполне уместна трактовка термина instatiation, принятая в объектных моделях данных, а именно – “порождение (создание) экземпляра объекта”. Поэтому перевод И.Абдуллина корректен.
Мне непонятно, почему В. Лейчинский противопоставляет объектное программирование и объектные базы данных. И объектные языки программирования и технологии объектных баз данных основаны на объектных моделях данных. Поэтому, естественно, в этих двух областях имеется много общих терминов.
В. Лейчинский. Я принимаю "instantiation" как "создание экземпляра (копии)". Фразу "the tables that already exist at the destination database are not instantiated" тогда можно перевести как "таблицы, которые уже существуют в целевой базе данных, не являются экземплярами (точными копиями) таблиц в исходной базе".
Но как перевести "The instantiation SCN for the tables specifies this SCN"?
Я предлагаю "instantiation SCN" переводить как "согласующий SCN", так как это получается как наименьший SCN из SCN, которые хранятся в заголовках блоков таблицы в исходной базе данных, но записывается в целевой базе не в блоки таблицы, которая синхронизируется с исходной, а в словарь, и сопоставляется этот SCN именно с исходной базой данных, поскольку таких согласующих SCN может быть несколько в соответствии с тем, что может быть несколько исходных баз. Переводить же этот термин как SCN экземпляра (копии) – значит вводить читателя в заблуждение, что это SCN блоков таблицы в целевой базе.
С. Мисюра. Я когда-то потратил довольно много времени, подыскивая подходящий перевод для терминов "instantiation", "instantiate" в контексте Oracle Advanced Replication (тот же смысл подразумевается и в контексте Oracle Streams). Главная проблема, как справедливо заметил В.Лейчинский, в том, что эти термины употребляются в различных смыслах (в одном и том же руководстве). Смысловые варианты:
- Воссоздание объекта в др. базе данных (раньше его там не было).
- Синхронизация объектов в локальной и удаленной базах данных (объекты уже есть, но отличаются друг от друга).
Считаю, что для перевода первого смыслового варианта точнее всего такие термины: "instantiation" – "воссоздание", "instantiate" – "воссоздавать". Предлагаемый вариант "создание экземпляра таблицы" мне режет слух (все-таки "экземпляр" обычно используется совсем в другом смысле).
Для второго смыслового варианта предлагаю "instantiation" – "синхронизация", "instantiate" – "синхронизировать". Пример перевода фрагмента "the tables that already exist at the destination database are not instantiated" – "если таблицы уже существуют в базе данных назначения, они могут быть не синхронизированы с таблицами в исходной базе данных". Применить вариант перевода "создание экземпляра" для данного примера, как мне кажется, невозможно. Возможен также вариант перевода "приведение к идентичному виду", но он слишком длинный.
Выбирать нужный вариант перевода придется, исходя из смыслового контекста.
А. Соколов. Я согласен, в данном контексте имеет место двойственное употребление термина "instantiation". Но "воссоздание объекта" не тянет на термин. "Воссоздание" согласно словарям – действие по глаголу воссоздать (создать вновь, повторить, воспроизвести, возобновить), т.е. приведение в прежнее состояние чего-либо разрушенного, уничтоженного. "Создание экземпляра объекта" – вполне устоявшийся термин, понятный специалистам. Перевод приведенного выше фрагмента: "если таблицы уже существуют в целевой базе данных, они повторно не создаются". Про "экземпляр" следует говорить только по отношению к исходной базе данных.
В. Лейчинский. Наиболее точный по смыслу перевод дан С. Мисюрой. Полностью согласен с ним, что не стоит использовать термин “создание экземпляра таблицы”, так как под экземпляром обычно понимают instance. Поэтому я и писал “экземпляр (копия)”. Что же касается предложенного С. Мисюрой варианта “синхронизация”, то здесь уместно было бы добавить “начальная синхронизация” или “начальное согласование”, поскольку этот процесс заключается в том, что в словарь базы назначения передается согласующий (синхронизирующий, порождающий - instantiation) SCN, с использованием которого затем и будет выполняться репликация (синхронизация) таблиц из исходной в целевую базу данных.
Позволю себе ответить на замечание уважаемого М.Р. Когаловского. Поскольку в основе Streams лежит объектно-ориентированный подход, уместно использовать и соответствующую терминологию. Но авторы из Oracle используют термин instantiation применительно к таблицам реляционной базы, рассматривая их как объекты таковой базы, а не к объектам, хранимым в собственно объектной базе данных.
М.Р. Когаловский. Мой комментарий касался следующей фразы из первого письма В. Лейчинского:
"... Как я понимаю, термин instantiate взят почему-то из объектного программирования, хотя здесь идет речь о объектах базы данных, т.е. о таблицах. ..."
На мой взгляд, следует разделять вопрос о свойствах модели данных (в нашем случае – объектной) и вопрос о том, каким образом она поддерживается в системе. Способ представления объектов в системе, поддерживающей объектную модель, на более низких уровнях информационной архитектуры системы, не имеет отношения к свойствам самой объектной модели.
С. Мисюра. Поддерживаю вариант перевода "instantiation SCN" - "SCN начальной синхронизации".
В. Лейчинский. Кажется, лучше "instantiation SCN" - "SCN синхронизации (копирования)".
А. Соколов. Вариант "SCN синхронизации (копирования)" - не панацея, так как в Oracle Streams есть еще "Ignore SCN", "Start SCN", "Captured SCN" и "Applied SCN", и все они каким-то образом участвуют в синхронизации объектов.
Рекомендуемые варианты перевода:
- instantiation
– "создание копий (объектов, таблиц и т.п.) [в целевых базах данных], [начальная] синхронизация [объектов] (в зависимости от контекста)";
- instantiation SCN
– "SCN начальной синхронизации".
А. Соколов. В некоторых публикациях в подобных запутанных случаях пишут "инстанциация" и всё (см., например, http://www.interface.ru/oracle/ora7/ora7a07b.htm)… Но может быть мы без этого обойдемся?
DDL handler, DDL statement
Контекст.
- ...user procedure that processes DDL LCRs resulting from DDL statements is called a DDL handler. An apply process can have only one DDL handler, which processes all DDL LCRs dequeued by the apply process.
- A DDL LCR describes a data definition language (DDL) change. A DDL statement changes the structure of the database.
Предлагаемый перевод:
- DDL-обработчик
- DDL-оператор
М. Р. Когаловский:
- Более естественно “обработчик DDL”. Кстати, в ранней литературе вводились русскоязычные аббревиатуры – ЯОД и ЯМД.
- “оператор DDL” или “оператор ЯОД”.
А. Соколов. Вопрос к сайтам "Культура письменной речи" (http://gramma.ru/) и "Справочная служба русского языка" (http://www.spravka.gramota.ru/buro.html?gotoq=146341):
Я достаточно часто получаю замечания, что нужно писать:
- - не "SQL-оператор" а "оператор SQL";
- - не "DDL-оператор", а "оператор DDL";
- - не "DDL-обработчик", а " обработчик DDL";
- и т.п.
Как же нужно писать правильно? Есть ли на этот счет какие-либо рекомендации или даже правила?
Ответ сайта "Культура письменной речи". Хотя современные словари не фиксируют слов SQL-оператор, DDL-оператор, DDL-обработчик, в них даны слова подобного состава, представляющие собой сочетания графем латинского и кириллического алфавитов (VIP-мероприятие, PR-технологии, web-документ, WWW-страница, CD-диск). Поэтому нам представляются правомерными оба варианта написания (SQL-оператор и оператор SQL и т. д.).
Ответ сайта "Справочная служба русского языка". Оба варианта имеют право на существование.
А. Соколов. Согласен с Михаилом Рувимовичем, что более естественно писать "обработчик DDL", "оператор DDL" и т.д. Но меня смущает частая необходимость перевода конструкций типа:
- SQL SELECT statement
- ALTER SESSION or ALTER SYSTEM DDL statements
- DDL handler STRMADMIN.HISTORY_DDL
Русскоязычные аббревиатуры ЯОД и ЯМД не хочется использовать, чтобы не заставлять читателя заниматься обратным переводом – аббревиатуры DDL и DML достаточно часто появляются в различных английских названиях (процедур, атрибутов, полей и т.п.).
LCR
Контекст.
For non-LCR messages, the apply servers pass the events to the message handler.
Предлагаемый перевод. Сообщения (message), которые не являются записями LCR, передаются серверами-потребителями в обработчик сообщений (message handler).
М. Р. Когаловский. "Записями" лучше опустить, поскольку это содержится в самой аббревиатуре.
А. Соколов. Мне приходилось неоднократно читать лекции для администраторов баз данных региональных управлений ЦБ РФ, во время которых я обратил внимание, что не все администраторы владеют английским языком, поэтому им очень сложно оперировать на русском языке многочисленными англоязычными аббревиатурами и названиями программных компонентов, если перед ними не стоит поясняющее русское слово (или словосочетание). Я считаю, что такие вставки целесообразно делать хотя бы один раз в начале разделов или подразделов.
apply handler
Контекст.
An apply process is an Oracle background process that dequeues events from a queue and either applies each event directly to a database object or passes the event as a parameter to a user-defined procedure called an apply handler. Apply handlers include message handlers, DML handlers, DDL handlers, precommit handlers, and error handlers.
Предлагаемый перевод. Процесс-потребитель(apply process) извлекает из очереди события (event) и либо непосредственно применяет их к объектам базы данных, либо передает их в параметре процедуры, определенной пользователем, которая называется обработчиком-потребителем. Существуют следующие обработчики-потребители: обработчики сообщений (message handler), DML-обработчики (DML handler), DDL-обработчики (DDL handler), обработчики фиксаций (precommit handler), обработчики конфликтов (conflict handler) и обработчики ошибок (error handlers).
М. Р. Когаловский.
- "apply handler" - как же Oracle уродует английский язык – какая странная грамматическая форма!
- Столь же странным получается и перевод. "… применяет их к объектам базы данных…" - совсем не по-русски, нужен другой глагол.
А. Соколов.
- Мы это обсуждали в разделе "apply process, apply process coordinator, apply server, logical change record", но ничего более вразумительного найти не смогли.
- Здесь подразумевается, что применяются изменения, содержащиеся в событиях (записи логических изменений, LCR). Может так и писать: "… применяет изменения, содержащиеся в событиях, к объектам базы данных…" или "… применяет события для изменения объектов базы данных…"? У нас как-то устоялись выражения типа "применение журнальных файлов для восстановления базы данных" и т.п.
DDL LCR
Контекст.
A DDL LCR describes a data definition language (DDL) change. A DDL statement changes the structure of the database.
Предлагаемый перевод. [запись] DDL LCR, запись логического DDL-изменения
"Запись логического DDL-изменения (logical change record, LCR) описывает изменение, сделанное DDL-оператором. Эти операторы изменяют структуру базы данных."
М. Р. Когаловский.
"DDL-изменения" - а почему бы не “изменения схемы”? Вариант DDL LCR - очень неудачный.
А. Соколов. "DDL-изменения" и "DML-изменения", честно говоря, я списал у Марка Ривкина (http://www.oracle.com/ru/oramag/december2003/index.html?general_mstreams.html). Называть их изменениями объектов базы данных (или словаря данных) и изменениями данных соответственно, показалось неудачным вариантом, так как это нужно было как-то разъяснять читателю, который вполне владеет терминами DDL и DML. Пример фрагментов оригинального текста:
- An LCR represents either a row change that results from a data manipulation language (DML) change or a data definition language (DDL) change. An LCR that represents a row change is a row LCR, and an LCR that represents a DDL change is a DDL LCR.
- In Streams, LCRs are message payloads that contain information about changes to a database. These changes can include changes to the data, which are data manipulation language (DML) changes, and changes to database objects, which are data definition language (DDL) changes.
- The SET_DML_HANDLER procedure provides a way for users to apply logical change records containing DML changes (row LCRs) using a customized apply.
"DDL LCR" – действительно неудачный вариант, но и "LCR объектов базы данных (или словаря данных)" не выглядят убедительно.
downstream database
Контекст.
The redo log files from the source database are copied to the other database, called a downstream database, and the capture process captures changes in these redo log files at the downstream database.
Предлагаемый перевод. "база данных нисходящего потока".
М. Р. Когаловский. Странный термин – это я об оригинале. Почему downstream? Есть в этом какая-то логика?
А. Соколов. Этот термин также появляется в таком контексте:
- If the capture process is a local capture process, or if the capture process is a downstream capture process that uses a database link to the source database, then these procedures automatically prepare the appropriate database objects for instantiation
- Downstream capture means that a capture process runs on a database other than the source database.
Может быть, появление данного термина связано с такой его трактовкой, как "downstream" - нисходящий поток (данных) (напр. в направлении модема). (ABBY Lingvo)
heterogeneous application integration
Контекст.
Heterogeneous Application Integration. Traditionally, different applications had to use a common data model for communication. This data model was further restricted by the limited datatype support of the message-oriented middleware. Oracle Streams Advanced Queuing supports AnyData queues that can store messages of multiple datatypes.
Предлагаемый перевод. "гетерогенная интеграция приложений"
Принятое предложение М. Р. Когаловского. "интеграция неоднородных приложений".
prebuilt
Контекст.
- Prebuilt update conflict handlers do not support LOB, LONG, LONG RAW, and user-defined type columns.
- Prebuilt database applications explicitly control the potential actions of a user, including the enabling and disabling of the user's roles while using the application.
Предлагаемый перевод. "шаблон"
М. Р. Когаловский. built – ведь не существительное!!!
Уточненный перевод. "предварительно подготовленный" (http://www.multitran.ru/c/m.exe?HL=2&L1=1&L2=2&EXT=0&s=prebuilt)
producer
Контекст.
A user or application that can enqueue messages.
Предлагаемый перевод. "производитель [сообщений]"
М. Р. Когаловский. Этот термин, наверное, может использоваться не только по отношению к сообщениям? Тогда зачем [сообщений]?
А. Соколов. В контексте Oracle Streams Advanced Queuing я не обнаружил других толкований.
|