Перенос баз данных с GUPTA SQLBase NLS к SQLBase InternationalИсточник: unifycom
Версии SQLBase, предшествовавшие SQLBase International, всегда обеспечивали поддержку национальных языков (NLS), таким образом, клиенты всегда могли определить в качестве стандартного языка своих баз данных язык, отличный от английского. В SQLBase International вводится поддержка кодовой таблицы Unicode плюс другие возможности для поддержки функций, ранее обеспечивавшихся с помощью NLS, и поддерживается неограниченное число языков вместо единственного языка на сервере базы данных. По данной причине NLS больше недоступна. Поэтому клиенты, использующие базы данных с NLS, должны будут выполнить их перенос при переходе на SQLBase International. Поддержка национальных языков (NLS) определяет, кроме других функций, используемые наборы двухбайтовых символов. Поддержка национальных языков в SQLBaseАнглийский язык является стандартным языком, поддерживаемым SQLBase. Поддержка национальных языков (NLS) была введена, чтобы предоставить клиентам во всем мире возможность создания баз данных также и на других языках. Для этой цели в базах данных необходимо использовать настройки для конкретных стран, определенные в файле country.sql. Данный файл содержит информацию, необходимую для настройки SQLBase для использования языков, отличных от английского. Остальные настройки в файлах, например, sql.ini, error и message.sql, также представляют собой этапы, необходимые для включения поддержки национальных языков в SQLBase. В число некоторых функций NLS входят: 1. Указание двухбайтовых символов для стран, использующих наборы двухбайтовых символов. 2. Указание дополнительных буквенных и цифровых символов, разрешенных для использования в именах столбцов, таблиц и индексов. 3. Указание альтернативных способов преобразования строки в нижний регистр. 4. Указание альтернативных способов сортировки символов или строк символов. Поддержка национальных языков в SQLBase имеет ограничение: не поддерживается присутствие на одном и том же сервере баз данных на языках разных стран. Другими словами, всеми базами данных на сервере должен поддерживаться один и тот же язык. Однако в современном мире интернационализированных приложений это неприемлемо. К базам данных предъявляется требование поддержки нескольких языков, которое можно удовлетворить, используя кодовую таблицу Unicode. С появлением кодовой таблицы Unicode отпадает необходимость в функциях поддержки национальных языков. Замена поддержки национальных языков с помощью функциональных возможностей кодовой таблицы UnicodeВ SQLBase International вводится поддержка кодовой таблицы Unicode. Это означает, что теперь не только поддерживаются, более простым и эффективным образом, функции, ранее обеспечивавшиеся поддержкой национальных языков, но также вводятся новые связанные с ними функции. Например, сравним функции поддержки национальных языков, указанные в разделе выше, и новые - в SQLBase International. 1. Указание двухбайтовых символов для стран, использующих наборы двухбайтовых символов. С помощью SQLBase International теперь стали возможны автоматические сохранение и извлечение данных в кодировке Unicode из баз данных. Это означает, что символы не в кодировке ASCII теперь распознаются без необходимости дополнительного конфигурирования базы данных. 2. Указание дополнительных буквенных и цифровых символов, разрешенных для использования в именах столбцов, таблиц и индексов. SQLBase International автоматически позволяет использовать символы не в кодировке ASCII и для данных, и для имен объектов, например имен таблиц, столбцов, индексов и так далее. 3. Указание альтернативных способов преобразования строки в нижний регистр. При использовании SQLBase International отсутствует какая-либо необходимость во встроенной поддержке верхнего и нижнего регистров для всех символов Unicode, а также символов в кодировке ASCII. Новые функции, введенные для поддержки интернационализации программного обеспечения. 4. Указание альтернативных способов сортировки символов или строк символов. В SQLBase International вводится понятие схем сортировки. Схемы сортировки представляют собой правила, которыми определяется, как символы сравниваются друг с другом. В SQLBase с поддержкой национальных языков поддерживается только бинарная сортировка, при которой числовое значение некоторого символа сравнивается с числовым значением другого символа. Данное ограничение теперь устранено, так как с помощью SQLBase International клиентам доступен выбор также между несколькими другими схемами сортировки. Кроме того, поддержка национальных языков позволяла устанавливать конкретный файл country.sql, содержащий раздел "трансляции", которым определялся используемый порядок сортировки. Недостаток данного процесса заключался в том, что всеми базами данных на сервере принудительно использовался один и тот же порядок сортировки. С помощью SQLBase International клиенты получают полную свободу выбора порядка сортировки, так как теперь можно определять отдельные схемы сортировки даже на уровне столбцов. Дополнительную информацию о схемах сортировки SQLBase International можно найти ниже в разделе "Ключевое слово COLLATION". Кроме того, в SQLBase International вводятся также новые типы данных, например NCHAR и NVARCHAR, для хранения символов национальных языков. С их помощью устранена необходимость в многобайтовых наборах символов. Эти новые типы данных могут также использоваться в индексах, хранимых процедурах, программных командах и триггерах. Все упомянутые выше функции являются частью SQLBase International и доступны для использования после установки продукта. Это означает, что теперь исключаются все шаги, ранее требовавшиеся для установки и настройки базы данных с поддержкой национальных языков, и приложения, обращающиеся к SQLBase International, теперь могут быть интернационализированы без всяких дополнительных настроек. Ключевое слово COLLATION Схемы сортировки могут назначаться на стороне сервера и клиента, и используются при каждом исполнении запросов SQL, содержащих сравнение строк. Если не назначена никакая схема сортировки, используется схема сортировки BINARY (двоичная). Для назначения схемы сборки, которая должна использоваться на стороне сервера, в относящейся к серверу части файла sql.ini используется ключевое слово COLLATION. Для назначения схемы сборки на стороне клиента, в относящейся к клиенту части файла sql.ini используется ключевое слово COLLATION. Клиентские приложения могут изменять схемы сборки во время выполнения, вызывая функцию API SQLSET SQLBase с параметром SQLPCCOL. Введены новые ключевые слова для поддержки сторон сервера и клиента. Ключевое слово CHARACTERSET При добавлении к относящейся к серверу части файла sql.ini, новое ключевое слово CHARACTERSET обозначает набор символов по умолчанию, используемый в операциях базы данных, наподобие функции @CHAR. Это также имеет место, если нельзя определить набор символов, используемый клиентом, например, в случае более старого клиента SQLBase, подключенного к SQLBase International. При добавлении к относящейся к клиенту части файла sql.ini им определяется набор символов, используемый клиентскими приложениями. Если SQLBase не может найти это ключевое слово в части файла sql.ini, относящейся к серверу или к клиенту, им автоматически выбирается набор символов, используемый операционной системой. Фактически, это рекомендуемые настройки для клиентов, использующих SQLBase International и на стороне сервера, и на стороне клиента. Клиентам, использующим для доступа к SQLBase International более старые клиентские приложения, следует ознакомиться с разделом "Рекомендации" ниже. Для клиентов, знакомых с базами данных NLS, может оказаться полезным сравнить использование ключевого слова CHARACTERSET и старого параметра настройки COUNTRY, так как оно в обоих случаях аналогично. Перенос данных с баз данных NLS на SQLBase InternationalНиже описываются этапы перехода с баз данных NLS на SQLBase. Сервер SQLBase International. 1. ВЫГРУЗИТЕ свою базу данных NLS. Комментарий [cm1]: Данный раздел необходимо будет изменить, как только станет доступен программный инструментарий для перехода. 2. Если в символьных столбцах базы данных NLS есть хранящиеся двоичные данные, внесите изменения в файл UNLOAD, чтобы изменить типы данных для этих столбцов на один из новых типов двоичных данных, введенных в SQLBase International. 3. На сервере SQLBase International добавьте ключевое слово CHARACTERSET к файлу sql.ini. Назначьте значение, эквивалентное значению параметра COUNTRY, указанному для сервера базы данных NLS. 4. Если на клиентских компьютерах используется интерфейс SQLBase API версий более ранних, чем 10.0.0, проверьте, что их набор символов соответствует набору символов сервера. 5. ЗАГРУЗИТЕ данные на сервер SQLBase International.
Рекомендации по обеспечению доступа к SQLBase International более старых клиентских приложенийАльтернативный процесс перехода, в котором используется ключевое слово Collate при создании базы данных SQLBase 10. Такой процесс дает больше гибкости и возможностей управления сортировкой по умолчанию, используемой в базе данных SQLBase 10. 1. ВЫГРУЗИТЕ свою базу данных NLS. 2. Если в символьных столбцах базы данных NLS есть хранящиеся двоичные данные, внесите изменения в файл UNLOAD, чтобы изменить типы данных для этих столбцов на один из новых типов двоичных данных, введенных в SQLBase International (Varchar -> binary, long Varchar -> long binary). 3. Если используются клиенты SQLBase 10, добавьте ключевое слово CHARACTERSET к файлу sql.ini на сервере. Назначьте значение, эквивалентное значению параметра COUNTRY, указанному для сервера базы данных NLS. 4. Если на клиентских компьютерах используется интерфейс SQLBase API версий более ранних, чем 10.0.0, проверьте, что их набор символов соответствует набору символов сервера. 5. Создайте новую базу данных SQLBase 10 в SQLTalk с помощью ключевого слова collate: create database newdb collate german_cs_as; здесь german_cs_as - образец схемы сборки для немецкого языка. Список всех доступных схем сборки можно найти в документации по SQLBase 10. 6. ЗАГРУЗИТЕ данные во вновь созданную базу данных SQLBase International. Клиентам, которым необходимо подключаться к серверу базы данных SQLBase International с помощью интерфейса SQLBase API версий более ранних, чем 10.0.0, рекомендуется добавить ключевое слово CHARACTERSET к относящейся к серверу части файла конфигурации sql.ini. Для клиентов более ранних версий, чем 10.0.0, сервером SQLBase International предполагается, что набор символов в трафике сообщений соответствует набору символов сервера. Если в файле sql.ini не указан набор символов сервера, используется набор символов, используемый операционной системой. Таким образом, если набор символов в отправляемых клиентом данных не соответствует набору символов, используемому сервером, результаты являются непредсказуемыми. Данная проблема решается или соответствующей настройкой ключевого слова CHARACTERSET, или обновлением клиентских приложений до версии интерфейса SQLBase API 10.0.0. Необходимо иметь в виду, что подключение к серверу SQLBase International старых клиентов NLS не поддерживается. Ана Паула Бонани (Ana Paula Bonani) Инженер технической поддержки |