
Август 2004
Тема номера: «Сделано в России»
Александр Соколов
Компания РДТЕХ
(mailto:ap_sokolov@mail.ru)
под редакцией М. Р. Когаловского,
(mailto:kogalov@cemi.rssi.ru)
О чистоте русского языка и точности терминологии
(часть XXI)
Введение
В
данном выпуске колонки завершается обсуждение терминологических вопросов,
возникших в процессе перевода комплекта документации СУБД
Oracle9i, который был выполнен
компаниями РДТЕХ (www .rdtex.ru )
и ITI.Ltd (www.iti.ru), а также рассматривается ряд новых
терминов, появившихся в СУБД Oracle Database 10g.
Примечание.
Полученные и отправленные
корреспондентам материалы подвергаются некоторой редакторской правке. Естественно,
в пользу ведущего колонки, но с сохранением смыслового содержания переписки.
Возвращаясь к
ранее
опубликованному
statement,
operator, clause
Вопрос
А.Королева
(Korolev @SoftLab.RU ).
При
переводе книги Oracle in a Nutshell издательства O'Reilly, которую планирует
выпустить издательство "Символ-плюс", возник вопрос с переводом
терминов statement, operator и clause.
Изучив
материалы из журнала Oracle RE, получили следующие варианты:
-
statement
– оператор,
-
operator
– операция,
-
clause
– предложение.
К
сожалению, такой вариант мне кажется неправильным. Операция – это сложение,
вычитание и т.д. а оператор – это лексема языка, вызывающая выполнение данной
операции (+ или ADD или что-то другое).
Хотелось
бы узнать Ваше мнение о применении в переводе книги варианта, который в последнее
время становится общепринятым в книгах по языкам программирования:
-
statement
– инструкция (с
комментарием переводчика в месте первого появления термина),
-
operator
– оператор,
-
clause
– предложение.
Ответ А. Соколова
.
SQL
– язык операторного типа, а не командного, например. Поэтому называть основные
конструкции языка инструкциями как-то не с руки. Operator – операция или, более
правильно, знак операции. Вот отрывок из Справочного руководства по языку SQL:
Общие
сведения об операциях SQL (operators – А.С.)
Операции
производят действия с отдельными элементами данных, которые называются
операндами или аргументами. Для обозначения операций используются специальные
символы или ключевые слова. Например, операция умножения задается звездочкой
(*).
Унарные
и бинарные операции
Существуют
два основных класса операций.
- Унарные.
Унарная операция производит действие только над одним операндом. Унарная
операция обычно имеет следующий формат:
операция операнд
- Унарные.Бинарные.
Бинарная операция производит действие над двумя операндами. Бинарная операция
имеет следующий формат:
операнд1 операция операнд2
По-моему,
здесь все очевидно, вместо "знак операции" иногда пишется
"операция", что не является очень большим упущением. "+" –
это знак операции сложения. Это мы изучали еще в школе.
most specific type
В
XII выпуске нашей колонки (http://www.oracle.com/ru/oramag/april2003/index.html?russia_disc_12.html)
мы "ломали копья", обсуждая, является ли термином словосочетание
"most specific type" (MST, наиболее специализированный тип). В книге
К.Дж.Дейт, Хью Дарвен "Основы будущих систем баз данных: третий
манифест", Перевод: С.Д.Кузнецов, Т.А.Кузнецова, Под ред. С.Д.Кузнецова (http://www.citforum.ru/book/manifesto/)
показано, что термин MST (в книге он переводится как "наиболее конкретный
тип") является фундаментальным понятием моделей наследования типов. "У
каждого значения имеется в точности один наиболее конкретный тип. Например,
данное значение может быть "только эллипсом", но не кругом (если
определены тип ELLIPSE и его подтип CIRCLE – А.С.), в том смысле, что его
наиболее конкретным типом является ELLIPSE (в реальном мире некоторые эллипсы
не являются кругами)".
Это
же относится и к переменным, но здесь термин MST называется также текущим
наиболее конкретным типом, поскольку значения переменных могут изменяться во
времени.
Комментарий
М.Р. Когаловского .
При
первом прочтении этого фрагмента я не среагировал на приведенный здесь
предложенный уважаемым С.Д. Кузнецовым новый вариант перевода термина "
most specific type
" (то, что это –
действительно термин, у меня сомнений никаких не вызывает; я думаю, что копья
ломались не по поводу того, термин ли это, а каков его русскоязычный
эквивалент). Я
уже высказывался по этому поводу ранее и предлагал вариант «наиболее
специализированный тип». Мне
по-прежнему представляется, что этот вариант более естественен по сравнению с
предложенным С.Д. Кузнецовым.
Я исхожу из того факта, что отношение
наследования типов в объектных моделях моделирует абстракции обобщения и
специализации (!)
Комментарий А. Соколова
Совершенно
согласен с Вами: "наиболее специализированный тип", "текущий
наиболее специализированный тип".
Oracle instance,
database instance
В
свое время мы оживленно обсуждали перевод терминов "Oracle instance",
"database instance" (http://www.oracle.com/ru/oramag/jan2003/index.html?russia_disc10.html)
и остановились на варианте: "экземпляр (СУБД) (Oracle)", который, тем
не менее, был признан .некорректным, но лучшего мы подобрать не смогли. В
документации мне встретилось неусеченное именование этого термина:
- System
control statements change the properties of the Oracle database server
instance. The only system control statement is ALTER SYSTEM. It enables you to
change settings (such as the minimum number of shared servers), kill a session,
and perform other tasks. (Oracle Database Concepts, 10g Release 1 (10.1))
Кроме
того, есть еще одно сходное понятие:
- A
cluster is a collection of Application Server instances with identical
configuration and application deployment. Clusters enforce homogeneity among
member instances so that a cluster of Application Server instances can appear
and function as a single instance. (Oracle Enterprise Manager Concepts, 10g
Release 1 (10.1))
Напомним
одно из определений "сервера": программа, которая предоставляет
некоторые услуги по запросам других программ, называемых клиентами. (Энциклопедия
Когаловского)
Отсюда
получается: "Oracle [database] [server] instance" (Oracle server
instance, Oracle database instance, Oracle instance) – "экземпляр
[[сервера базы данных] Oracle] ". По крайней мере, как мне кажется, это
лучше "экземпляра СУБД". Далее, "Application Server
instance" – "экземпляр сервера приложений".
Здесь
целесообразно разобраться и с экземплярами в среде Real Application Clusters.
Приведем некоторые цитаты из документации:
- Real
Application Clusters: Multiple Instance Systems, Real Application Clusters
instances
- After
starting an instance, Oracle associates the instance with the specified
database.
- Multiple
instances can run concurrently on the same computer, each accessing its own
physical database. In large-scale cluster systems, Real Application Clusters
enables multiple instances to mount a single database. (Oracle Database
Concepts, 10g Release 1 (10.1))
- Enterprise
Manager Grid Control enables you to manage multiple cluster databases, cluster
database instances, and the hosts on which cluster database components operate.
- All
RAC instances must be able to access all datafiles.
- If
a failure occurs and adversely affects a RAC database instance, then RAC moves
any services on that instance to another available instance. (Oracle Real
Application Clusters Administrator's Guide, 10g Release 1 (10.1))
По-моему,
по аналогии с "экземплярами сервера", "Real Application Cluster
[database] instance" – "экземпляр кластера [Real Application
Cluster]".
Дополнительный комментарий А. Соколова.
В
технической литературе при описании архитектуры "клиент-сервер" часто
по умолчанию считается что клиентов может быть много, а про возможное
количество серверов деликатно умалчивается (также по умолчанию обычно
считается, что сервер один). Почему? Почему в двухзвенной архитектуре в
серверном звене не может находиться несколько серверов? По-моему архитектурных
ограничений для этого нет. Серверы могут использовать одну и ту же СУБД, один
компьютер и даже не быть связанными друг с другом (т.е. работать без
распределенной базы данных).
Для
простоты я здесь не имею в виду архитектуру распределенного сервера, а только
такую конфигурацию, когда клиенты могут подключаться к разным серверам
(попеременно, конечно), при этом все серверы могут размещаться на одном
компьютере, использовать одну СУБД, но разные базы данных, и не могут взаимодействовать
друг с другом (т.е. распределенная среда отсутствует). Я, например, для
слушателей курсов АБД создавал 16 таких серверов, по одному для каждого
слушателя. Как эти серверы называть? Экземпляры СУБД? Экземпляры сервера? Я
фактически убежден, что экземпляры сервера (если выражаться более точно,
экземпляры серверного звена архитектуры "клиент-сервер").
Далее,
в Oracle в трехзвенной архитектуре "клиент-сервер" сервер приложений
сам имеет трехзвенную архитектуру и, соответственно, собственный сервер базы
данных в своем серверном звене (с сопутствующим окружением, и это в
совокупности называется инфраструктурой сервера приложений). При этом в
промежуточном звене сервера приложений может создаваться несколько
"серверов приложений". Как их называть? Я фактически убежден, что
экземплярами сервера приложений (если выражаться более точно, экземплярами
промежуточного звена сервера приложений). Некоторые из компонентов сервера
приложений могут иметь и многозвенную архитектуру (например, у них может
появиться звено веб-сервера), но в целом мы остаемся в рамках архитектуры
"клиент-сервер".
Комментарий М. Р. Когаловского.
Давайте
попробуем разобраться в суждениях, высказанных в этом Вашем комментарии. Сначала
об определении концепции «клиент-сервер». Предполагается, что имеется некоторая
программа (компьютер или, пойдем дальше, программно-аппаратная система),
которая способна оказывать какую-либо услугу или некоторый набор услуг для
другой программы (компьютера или программно-аппаратной системы). Относительно
этой услуги или набора услуг можно говорить о распределении ролей сторон в их
взаимодействии. Сторону, запрашивающую услугу, принято называть клиентом,
сторону, предоставляющую услугу, - сервером. Очень важно подчеркнуть, что это
распределение ролей во взаимодействии сторон относительно. Оно определяется по
отношению к данной услуге или данному набору услуг. Если рассматривать
какую-либо другую услугу (набор услуг) клиент, о котором выше шла речь, вполне
может играть роль сервера, а сервер – клиента.
Далее,
одна и та же программа может участвовать в нескольких взаимодействиях. Поэтому
один клиент может обращаться к нескольким серверам, каждый из которых
предоставляет свою услугу или набор услуг. Заметим, что строго говоря, в этом
случае мы уже имеем дело не с одним клиентом. Эта программа на самом деле
совмещает в себе роли нескольких клиентов.
Теперь
рассмотрим сервер баз данных, например, Oracle Database Server. Если создать
несколько его установок, возможно, по разному конфигурированных, работающих с
одной и той же или с разными базами данных, то тем самым порождается несколько
разных серверов, хотя они все созданы на основе одного и того же программного
продукта, называемого сервером баз данных.
В
такой ситуации вполне уместно использовать термин "экземпляр
сервера", где под сервером понимается этот программный продукт - Oracle
Database Server, т.е. инструмент для создания действующих серверов в рамках
архитектуры клиент-сервер."
В
многозвенной архитектуре «клиент-сервер» вполне может сосуществовать множество
серверов, предоставляющих разнообразные услуги, и множество клиентов, их
потребляющих, с разнообразными переплетениями взаимодействий между ними. Определение
концепции «клиент-сервер», естественно, не касается вопроса о количестве
серверов или клиентов. Оно касается главного в этой концепции – наличия двух
сторон во взаимодействии и их ролей.-
Из переписки
Advice,
advisory, signature
Вопрос А.Бачина (
abachin @fors.ru).
Никак
не могу придумать хорошего (или правильного) русского перевода для двух
терминов: Advice, advisory (просится "вспомогательный", но как будет
существительное в им. падеже?) и (несколько заголовков типа Developing System
Signatures), используемых в интересной статье Donald K. Burleson "Auto-Tuning
Oracle Database 10g: Oracle SGA" (http://otn.oracle.com/oramag/webcolumns/2003/techarticles/burleson_auto_pt1.html,
http://otn.oracle.com/oramag/webcolumns/2003/techarticles/burleson_auto_pt2.html).
Ответ А. Соколова.
Эта
статья является как бы развитием статьи "Using the self-tuning features of
Oracle9i" (Использование средств автоматической настройки баз данных
Oracle9i), By Donald K. Burleson, перевод которой опубликован в http://www.oracle.com/ru/oramag/octnov2002/index.html?admin_burleson.html.
Кроме того, часть информации содержится в статье "Oracle9i Database
Administration Best Practices" (Лучшие практические методы
администрирования СУБД Oracle9i), By Mughees A. Minhas, опубликованной в http://www.oracle.com/ru/oramag/december2003/index.html?admin_best_admi1.html
и http://www.oracle.com/ru/oramag/january2004/index.html?admin_best_admi2.html.
Advice, advisory
– консультативная
справка. Например, Shared Pool Advisory – консультативная справка по
разделяемому пулу. Я так переводил.
Signature
– сигнатура. Это не противоречит, по
моему, определению в статье: "Almost every Oracle database exhibits
patterns that are linked to regular processing schedules, called
signatures".
Комментарий А. Бачина
.
Advice,
advisory – консультативная справка – это хорошо, И Regular processing
schedules, called signatures – постоянные расписания (планирование) процессов,
называемые сигнатурами – тоже звучит. Термин все-таки. Но Developing Signatures
for pga_aggregate_target – разработка сигнатур для параметра
pga_aggregate_target – как-то в заголовке параграфа для меня еще не очень
комфортно.
Ответ А. Соколова.
Не
"разработка сигнатур", а, по моему, "вычисление сигнатур".
Насколько я понимаю, термин "сигнатура" взят из математики: числовая
характеристика квадратичной формы.
Комментарий А. Бачина.
Конечно!
Сигнатура – в математике (геодезии) – график (ломаная линия, кривая) поведения
в данном случае параметра во времени. (Вспомним [квадратичные, лунные]
сигнатуры приливов и пр.) Поэтому сигнатура, действительно, вычисляется,
определяется, моделируется. Сильно вводило в заблуждение общепринятое –
подпись.
Комментарий М. Р. Когаловского.
Хотел
бы, коллеги, обратить ваше внимание на термин "сигнатура операции",
который играет важную роль в объектных моделях данных – стандарта CORBA
консорциума OMG (на которой основан язык IDL) и стандарта объектных данных
ODMG. Сигнатура операции служит для определения операции и включает имя этой
операции, имя и тип каждого ее аргумента, типы возвращаемых значений и имена
исключительных ситуаций, которые могут порождаться данной операцией. Из
приведенного выше фрагмента текста мне трудно судить, имеет ли к нему
какое-либо отношение сигнатура операции, но мне кажется полезно о ней знать.
Нужно
отметить также, что наряду с напомненным Александром Петровичем термином
"сигнатура квадратичной формы" в математике используется также термин
"сигнатура алгебраической системы", который означает совокупность
операций и отношений, определенных на основном множестве данной алгебраической
системы. Говорить о такой сигнатуре, что она вычисляется, было бы
неестественно.
Наконец,
хотел бы обратить ваше внимание на двусмысленности, которые порождает явление,
называемое в терминографии "эллипсисом" – ситуацией, когда опускается
часть наименования термина. Авторы приведенного фрагмента текста провоцируют эту
ошибку, используя усеченное наименование термина – как видно из приведенного
выше, имеется по крайней мере уже три многословных термина, в наименования
которых входит "сигнатура".
Дополнение А. Соколова
В
контексте, близком к обозначенному Михаилом Рувимовичем для термина
"сигнатура операции", термин "сигнатура" достаточно широко
используется также и в среде СУБД Oracle. Сигнатура связывается с каждой
скомпилированной программной единицей. Она идентифицирует программную единицу
по следующим признакам:
-
имя (пакет, процедура, функция, триггер);
-
тип каждого параметра (для подпрограмм);
-
направления параметров (
IN
,
OUT
,
IN
OUT
);
-
количество параметров;
тип возвращаемого значения (для функции).
Кроме
того, "сигнатуры" используются в опции Oracle interMedia для
сопоставления изображений по их характерным признакам (синоним термина
"feature vector").
Во
многих случаях в оригинале документации полные именования терминов отсутствуют.
Вопросы и ответы
О режимах
Вопрос к Справочной службе
русского языка.
В
технических текстах встречаются выражения типа "перевод файла в автономный
режим" (фактически это "перевод файла в автономный режим
доступа" или "перевод файла в автономное состояние"). Насколько
корректны такие выражения с точки зрения норм русского языка?
Ответ.
Вполне корректны.
deferrable
initially immediate/deferred constraint
В
данном контексте встречаются два варианта перевода слова "immediate":
"первоначально" или "изначально".
Вопрос
. "Первоначально"
или "изначально" – есть ли какое-либо смысловое различие, например,
в выражениях типа "первоначально непроверяемое ограничение"?
Ответ.
Возможно такое разграничение. Изначально
непроверяемое – непроверяемое в принципе. Первоначально непроверяемое –
непроверяемое только в начале.
Резюме.
"откладываемое
первоначально немедленное/отложенное ограничение"
swapping
Вопрос
. В программировании
термин "swapping
" (механизм
подкачки в оперативную память процесса из виртуальной памяти и наоборот)
переводится как "свопинг" или "свопирование".
Что, на ваш
взгляд, более предпочтительно с точки зрения русского языка? К сожалению,
русского эквивалента нет. Термин "подкачка" не годится, он занят:
"paging" – механизм листания (подкачки, замещения) страниц в
оперативной памяти. При этом, "
page in" – подкачка страниц в
оперативную память из виртуальной памяти, "page out" – выкачка
страниц из оперативной памяти в виртуальную память. Иногда, термины
"swapping"
и "paging" используются как синонимы, но это верно не во всех
операционных системах.
Ответ.
Следует
использовать тот термин, который понятен большинству программистов.
На наш
взгляд, лучше сохранить английскую модель – свопинг.
Счетная форма
Вопрос
. Когда и почему в
орфографических словарях появилась "счетная форма" существительных.
Как
пользоваться этой формой? Например, когда писать "5 битов (байтов)"
или "5 бит (байт)"?
Остается ли в силе рекомендация профессора Лопатина от 20.07.2001 г.:
"Родительный падеж мн. числа от большинства названий единиц измерения (слов мужского рода 2
склонения) имеет два варианта: стилистически нейтральный (и более книжный)
вариант с окончанием -ов и разговорный вариант с нулевым окончанием. Так себя
ведут такие слова, как грамм, вольт и многие другие. Этой закономерности
подчиняются и слова байт, бит."?
Ответ.
Многие
названия единиц измерения в сочетании со словами, обозначающими количество
выступают в формах, совпадающих с им. п. ед. ч. Существуют основания признавать
их особой счетной формой.
Об этом писал уже В. В. Виноградов. Если речь
идет о счете, то пять бит. Но ср.: не хватает битов (это не счетная форма).
Комментарий А. Соколова.
Я
предпочитаю следовать проф. Лопатину, но использование счетной формы в
программных системах существенно упрощает программирование форм ввода-вывода.
|