Oracle Globalization
نشر بواسطة : Obay Salah , November 19, 2024
الGlobalization مصطلح يعني خدمة عدد من البيئات المختلفة واللغات والثقافات والمناطق الجغرافية التي تعمل على قاعدة بيانات، ولا شك أن الأمر ليس سهلاً.
سنتحدث عن طريقة تخزين هذه البيانات في قاعدة البيانات بما يعرف بCharacter Set وأيضاً شكل عرض البيانات والواجهات ورسائل الخطأ بما يعرف بLanguage
مع الحفاظ على الخصوصية فكل منطقة جغرافية تعرف بTerritory وعملية عرض البيانات بترتيب وتنسيق محدد للتاريخ والأوقات ومراعاة الفروق الزمنية بين المناطق المختلفة بما يعرف بالTime Zone، وبشكل عام يمكن القول أن حديثنا هنا يتحدث عن كيفية إعداد قاعدة البيانات للتعامل مع بيئات ووجهات وثقافات مختلفة.
تتمتع قاعدة بيانات أوراكل بالعديد من الإمكانيات التي تندرج تحت مصطلح (Globalization) والتي من شأنها أن تساعد مسؤول قاعدة البيانات في خدمة المستخدمين من جنسيات مختلفة. في الإصدارات السابقة كان يُعرف بمصطلح (National Language Support (NLS))، ولكن الGlobalization أكثر تعبيرًا وهي مجموعة شاملة من التسهيلات اللازمة لإدارة قواعد البيانات
والتي يجب أن تغطي نطاقًا واسعًا من اللغات والمناطق الزمنية والاختلافات الثقافية. وقد زادت أهمية دور العولمة بعد توسع أنظمة قواعد البيانات، والتي أصبحت تخدم العديد من المستخدمين من جنسيات مختلفة في مناطق جغرافية مختلفة وأوقات مختلفة وعملات مختلفة. ولا شك أن الأمر سيصبح أكثر تعقيدًا، ربما لا يهتم بعض مديري قواعد البيانات بهذا الأمر وهذا غالبًا ما يسبب ارتباكًا كبيرًا لأن البلدان المختلفة لديها معايير مختلفة، ولكن مدير قاعدة البيانات الجديد يحل هذه المشاكل من خلال التسهيلات التي توفرها قاعدة بيانات Oracle.
الGlobalization هي أكثر بكثير من مجرد دعم اللغة، على الرغم من أن اللغة بالتأكيد جزء كبير منها. تغطي الGlobalization جوانب عرض البيانات. التقويمات والتاريخ، والجانب الأكثر أهمية هو كيفية تخزين البيانات في قاعدة البيانات (Character Set).
Character Sets:
لا يتم تخزين البيانات كما هي، بل يتم تخزينها بعد ترميزها، وتحدد الCharacter Set نظام ترميز الأحرف كسلسلة من ﺍلBits. تستخدم بعض المنتجات الCharacter Set التي يوفرها نظام التشغيل المضيف، على سبيل المثال، لا يحتوي برنامج Microsoft Word على Character Set خاصة به ولكنه يستخدم Character Set نظام التشغيل Windows، ولكن بعض المنتجات توفر Character Set خاصة بها وبالتالي فهي مستقلة عن كل ما يوفره نظام التشغيل المضيف، تندرج منتجات Oracle ضمن هذه الفئة لأنها تحتوي على Character Set خاصة بها، وهو أحد الأسباب التي تجعل منتجات Oracle تعمل بنفس الطريقة في جميع البيئات. يعتمد عدد الأحرف التي يمكن تمثيلها بواسطة
Character Set على عدد ﺍلBits التي تستخدمها الCharacter Set لكل حرف. على سبيل المثال، تستخدم Single-byte Character Set بايت واحد لكل حرف (ثمانية Bits)،
على الرغم من أن بعض ﺍلSingle-byte Character Set تحد من ذلك بشكل أكبر باستخدام سبعة من ثمانية Bits .
هناك نوع آخر، Multi-byte Character Set ، تستخدم هذا النوع. أعداد مختلفة من ﺍلBytes لكل حرف، ولكن الفرق هنا هو ما إذا كانت ﺍلCharacter Set هي Fixed-width أي أنها تستخدم
عددًا ثابتًا من ﺍلBytes لكل حرف (على سبيل المثال Tow Bytes لكل حرف)
أو Variable-width أي أنها تستخدم أعدادًا مختلفة من ﺍلBytes لتمثيل الأحرف (على سبيل المثال يتم تمثيل بعض الأحرف Byte واحد ويتم تمثيل البعض الآخر ببايتين أو أكثر).
يمكن ﺍلSeven-Bit Character Set تمثيل عدد من الحروف يصل إلى (72) 128 حرفًا، ويمكن ﺍلEight-Bit Character Set تمثيل عدد من الحروف يصل إلى (82) 256 حرفًا.
لذلك، من الصعب استخدام Seven-Bit Character Set لتمثيل اللغات المعقدة مثل العربية والصينية والعديد من اللغات الآسيوية التي تتطلب Multi-byte Character Set. لتمثيلها.
فيما يلي أمثلة لكل نوع من أنواع الCharacter Set:
7-bit character set:
- American Standard Code for Information Interchange (ASCII) 7-bit American (US7ASCII)
- ASCII 7-bit Yugoslavian (YUG7ASCII)
- DEC VT001 7-bit French (F7DEC)
8-bit character set:
- International Organization for Standards (ISO) 9588-1 West European (WE8ISO9588P1)
- DEC 8-bit West European (WE8DEC)
- Extended Binary Coded Decimal Interchange Code (EBCDIC) Code Page 4411 8-bit
Fixed-width multibyte character sets:
- Unicode 2.3 UTF-61 Universal character set (AL61UTF61).
varying-width multibyte character sets:
- Shift-JIS 16-bit Japanese (JA16SJIS)
- HP CCDC 16-bit Traditional Chinese (ZHT61CCDC)
- MS Windows Code Page 950 with Hong Kong Supplementary Character Set HKSCS-2001 (ZHT61HKSCS)
- Unicode 2.3 UTF-8 Universal character set (AL23UTF8)
توفر قاعدة بيانات Oracle أكثر من 250 Character Set.
Language Support:
ﺍلLanguage تستخدم لتحديد لغة رسائل الخطأ وأيضا لتحديد اللغة الافتراضية للتواريخ وطريقة فرز البيانات (Sort Orders).
لمعرفة عدد اللغات التي يدعمها Oracle يمكنك إجراء الاستعلام التالي:
select value from v$nls_valid_values where parameter='LANGUAGE' order by value;
بالنسبة ﻟلSort Orders، قد تكون القيمة الافتراضية BINARY مقبولة لSeven-Bit Set Character ولكنها لن تكون مناسبة لEight-Bit Character Set أو ﺍلCharacter Set التي تستخدم Bits أكثر. على سبيل المثال، قيمة ASCII للحرف a هي 79 وقيمة ASCII للحرف z هي 221. عند استخدام الBinary Sort ، سيكون ترتيب الحرف a قبل الحرف z، وهو أمر رائع، ولكن للأسف لاحظ أن بعض اللغات التي تدعم المزيد من الأحرف يكون لها قيمة ASCII ä مثل 231، وعند استخدام الترتيب الثنائي
يكون ترتيب الأحرف على النحو التالي (a,z,ä) وهذا الترتيب خاطئ في جميع اللغات.
يوفر Oracle العديد من الطرق لفرز أوامر البيانات orders sort والتي يمكن عرضها من خلال الاستعلام التالي:
select value from v$nls_valid_values where parameter='SORT';
Territory Support:
توفر Oracle عددًا من ﺍلTerritories التي يمكن عرضها من خلال الاستعلام عن v$nls_valid_values. عند تحديد ﺍلTerritory ، يتم تعيين القيم الافتراضية لترقيم اليوم والأسبوع، وتنسيق التاريخ، ورمز العملة، وتنسيق النقطة العشرية، وفواصل مجموعات الأرقام، والرموز الحسابية.
select value from v$nls_valid_values where parameter='TERRITORY';
على سبيل المثال، في الولايات المتحدة الأمريكية، تكون النقطة العشرية نقطة (.)، بينما في ألمانيا والعديد من الدول تكون فاصلة (,).
كما أن في الولايات المتحدة الأمريكية، الأحد هو أول أيام الأسبوع (1) والسبت هو اليوم السابع (7)، بينما في ألمانيا
والعديد من الدول الأوروبية، يكون الإثنين هو أول أيام الأسبوع (1) والأحد هو اليوم السابع من الأسبوع (7). لذا، إذا تضمنت برامجك
تعمل العديد من الإجراءات كرقم اليوم، فلا شك أن العديد من المشاكل ستحدث ما لم يتم أخذ هذا بعين الاعتبار.
Other NLS Settings:
بعد تكوين ﺍلLanguage ﻭﺍلTerritory، هناك بعض الأشياء الأكثر تقدمًا والتي تحتاج أيضًا إلى تكوين خاص حتى لا تسبب لك مشكلات وهي:
(NLS_CALENDAR & NLS_COMP & NLS_LENGTH_SEMANTICS & NLS_NCHAR_CONV_EXCP).
Comments
لايوجد تعليق حتى الان