(обратно)
123
Такая манипуляция будет гораздо более простой, если использовать внешнюю функцию для вычисления длины преобразованного целого числа. Я выбираю - может быть немного с другой точки зрения - демонстрацию того, что можно выполнить манипуляцию строками без использования внешних функций.
(обратно)
124
Поскольку проверки Foreign Key (FK) выполняются вне транзакций, а пользовательские триггеры работают всегда в контексте транзакций, полноценно заменить FK триггерами невозможно - из-за ограничений "видимости" триггер будет видеть старые данные, которые уже изменены. Приведенная схема будет работать, только если для справочной таблицы наложен ряд ограничений по удалению и изменению записей. - Прим. науч. ред.
(обратно)
125
Проектирование древовидных структур в реляционных базах данных само по себе является наукой. Будучи очаровательным, это все же выходит за пределы данного руководства. Найдите в Интернете написанную Joe Celko книгу на эту тему: Joe Celko's Trees and Hierarchies in SQL for Smarties (Morgan Kaufmann, 2004).
(обратно)
126
Ряд очень полезных статей по реализации древовидных структур в РСУБД вы сможете найти в соответствующем разделе страницы www.ibase.ru/develop.htm. - Прим. науч. ред.
(обратно)
127
Как показывает практика, такие переводы не приносят ожидаемой пользы разработчикам. Сообщения сервера ориентированы на разработчика приложений, и даже будучи переведенными, слишком сложны для восприятия пользователем программы. Более грамотным является корректная обработка ошибок, возникающих на сервере, в коде клиентского приложения, и выдача пользователю осмысленных и понятных сообщений в контексте прикладной области. Не составляет сложености в это же время сохранять исходные сообщения от сервера в специальном файле для последующего анализа корректности работы приложения - Прим. науч. ред.
(обратно)
128
См. APIGuide.pdf в комплекте документации по InterBase, опубликованной Borland Software Inc.
(обратно)
129
He следует путать с компонентами-обработчиками сообщений, которые инкапсулируют на клиентской стороне механизм событий.
(обратно)
130
Ресурс ibsurgeon.com предлагает не только средства ремонта баз данных, но с августа 2005 года и средство для восстановления поврежденных резервных копий баз данных. - Прим. науч. ред.
(обратно)
131
См. http://security.ucdavis.edu/HardenWin2Klab.pdf
(обратно)
132
Windows 2000 Security Handbook (Osborne-McGraw Hill, 2000) написана Philip Сох и Tom Sheldon. Биографию Philip Сох см. на http://www.systemexperts.com/bios.html.
(обратно)
133
Известным продуктом для шифрования сетевого трафика для Windows и Linux является ZeBeDee (www.ibase.ru/devinfo/zebedee.htm). -Прим. науч. ред.
(обратно)
134
По соображениям безопасности системы не должны поставляться вместе с библиотекой встроенного сервера, доступной для активного сервера Firebird, если только корневой каталог Firebird не защищен жестко от неавторизованных посетителей. Подробности см. ранее в главе
(обратно)
135
Несмотря на это в Firebird используется шифрование с потерей данных, которое не позволяет восстановить исходный пароль путем дешифрования. В Firebird 2.0 вместо DES используется MD5. - Прим. науч. ред.
(обратно)
136
Как уже говорилось ранее, шифрование пароля производится с потерей данных. Единственный способ, которым можно "взломать" пароль, - это перебор словаря, шифруемого тем же алгоритмом, что используется в Firebird. В данном случае время подбора существенно сокращается тем, что шифруемый пароль имеет длину не более 8 символов. - Прим. науч. ред.
(обратно)
137
Сервер просто не проверяет никакие права доступа для пользователя SYSDBA. В частности, поэтому операции над множеством объектов в SQL производятся от имени SYSDBA чуть быстрее, чем от имени других пользователей. - Прим. науч. ред.
(обратно)
138
Все версии InterBase и Firebird имеют весьма своеобразное поведение: если выдан GRANT на UPDATE к столбцам явно, то успешно может быть выполнен только UPDATE всей таблицы, без указания ограничения WHERE. Таким образом, выдача GRANT на UPDATE к конкретным столбцам является совершенно бесполезной. -Прим. науч. ред.
(обратно)
139
По причине ошибки в Windows использование DummyPacketlnterval может привести к зависанию или краху Windows на клиентской стороне. Объяснения см. в статье Microsoft Support: http://support.microsoft.com/default.aspx?kbid=296265. Не рекомендуется его также использовать и для систем, отличных от Windows, поскольку это может привести к отключению активного клиента.
(обратно)
140
Подробно по настройкам keepalive читайте статью www.ibase.ru/devinfo/keepalive.htm. - Прим. науч. ред.
(обратно)
141
Возможно, здесь ошибка - включение TCPJTODELAY как раз означает отключение алгоритма Nagle, то есть выключение режима буферизации данных при пересылке, чему соответствует установка параметра no_nagle в True. - Прим. науч. ред.
(обратно)
142
Здесь речь идет о порядке обработки параметров в запросах с подзапросами, содержащих параметры как во внешней части запроса, так и в подзапросе. В старых версиях InterBase и Firebird параметры заполнялись сначала для внешнего запроса, а потом для подзапроса, хотя по тексту запроса они располагаются наоборот. - Прим. науч. ред.
(обратно)
143
Общая библиотека UDF доступна на нескольких сайтах, включая http://www.ibphoenix.com.
(обратно)
144
В терминах C++ "по указателю".
(обратно)
145
Определена в ibase.h как blobcallback (структурный тип) и BLOBCALLBACK (указатель на структурный тип). Это объявление дает полное определение для функций чтения/записи указателей, которые упрощают использование их в современных компиляторах. См. также примечания перед объявлением в ibase.h.
(обратно)
146
При отсутствии ограничений на размещение внешних таблиц уже давно известны возможности использовать внешние таблицы как для перекачивания базы данных с сервера на клиент, так и для внедрения с клиента на сервер вредоносных UDF. - Прим. науч. ред.
(обратно)
147
SET NAMES, то есть набор символов соединения, должен быть задан до подсоединения к базе данных.
(обратно)
148
Вопросы безопасности файловой системы и других средств окружения обсуждаются в главах 33 и 34.
(обратно)
149
Если вы по-настоящему беспечны и оставите эти переменные окружения на рабочих станциях, показывая всему миру пароль пользователя SYSDBA, удаленные пользователи также смогут выполнять копирование, не задавая учетных данных. Нечего и говорить, что такая практика должна быть полностью исключена.
(обратно)
150
В некоторых случаях администраторы БД перенаправляют вывод gbak в утилиты упаковки, такие как gzip. Это позволяет "на лету" получить запакованную резервную копию базы данных с меньшей