কোলেশন এবং চরিত্র সেট মধ্যে পার্থক্য কি?


24

ডাটাবেস সম্পর্কে আমার একটি সাধারণ প্রশ্ন আছে। আমরা সাধারণত ডাটাবেস সহ কোলেশন শব্দটি ব্যবহার করি। আমি এটির চরিত্র সেট থেকে কীভাবে আলাদা তা জানতে চাই। আমার ধারণা কল্যাশনটি চরিত্রের সেটটির একটি উপসেট। যদি এটি সত্য হয় তবে একটি চরিত্রের অধীনে একাধিক কোলেশন কী।


এছাড়াও পড়ুন stackoverflow.com/questions/341273/...
Sanghyun লি

উত্তর:


27

চরিত্র সেটগুলি প্রতীকগুলির একটি তালিকা। তোমার তুলনা তাহলে হওয়া ASCII করার latin1 , সঙ্গে latin1 আপনি সব আমেরিকান শব্দ কারণ লিখতে সক্ষম হবে latin1 সব রয়েছে হওয়া ASCII অক্ষর, যা কোন ইংরেজি শব্দ লিখতে যথেষ্ট। বিপরীতে, ASCII এর সাহায্যে আপনি পাশ্চাত্য ইউরোপীয় নির্দিষ্ট ভাষার সমস্ত শব্দ লিখতে সক্ষম হবেন না কারণ উদাহরণস্বরূপ 'À', 'ë', 'õ', 'Ñ' এর মতো অক্ষরগুলি অনুপস্থিত।

কোলেশন অক্ষরের মধ্যে তুলনা সম্পর্কে। এটি একটি চরিত্রের অক্ষরের তুলনায় নিয়মের একটি সেটকে সংজ্ঞায়িত করে।

মাইএসকিউএল-এ কোলিশেশনগুলি প্রায়শই একটি ভাষার সাথে সম্পর্কিত (যেমন 'ল্যাটিন 1_সুইডিজ_সি', 'লাতিন 1_german1_ci' ইত্যাদি)। আপনি যখন কোনও নির্বাচিত ক্যোয়ারির অর্ডার দিচ্ছেন, 'ö' দিয়ে শুরু হওয়া একটি শব্দ কয়েকটি ভাষায় (কিছু জোটের সাহায্যে) 'ও' এবং 'পি' দিয়ে শুরু হওয়া দুটি শব্দের মধ্যে স্থাপন করা হবে। তবে অন্য কোলিশের সাহায্যে এই চরিত্রটি পুরোপুরি শেষের দিকে রাখা যেতে পারে যা ফলস্বরূপ নির্বাচনকে আলাদা করে তোলে।


ধন্যবাদ, এখন এটি প্রায় পরিষ্কার। সুতরাং আমি মনে করি একটি বহুভাষিক সাইটের জন্য পরিকল্পনা করার সময় কোলেশন নির্বাচন করা গুরুতর উদ্বেগজনক? উদাহরণস্বরূপ যদি কোলিশনটি 'লাটিন 1_সুইডিজ_সি' হয় তবে ইউনিকোডের ভাষা নিয়ে কাজ করার সময় আমি প্রত্যাশিত ফলাফল পাব না?
শমির

1
আমি আপনাকে ইউনিকোডে যাওয়ার পরামর্শ দিচ্ছি বা আপনার কিছুটা সময় সমস্যা হতে পারে (উদাহরণ হিসাবে এশিয়াটিক ভাষা)। কোলেশন ব্যবহারকারীর ভাষার উপর নির্ভর করবে। আপনি যদি একটি বহুভাষিক সরঞ্জাম রাখতে চান তবে এটি আপনাকে যত্নবান হতে হবে।
ডেডালনিক্স

6

পূর্ববর্তী উত্তর হিসাবে, অক্ষর সেট হ'ল একটি সংখ্যাকে বরাদ্দ করা অক্ষরের একটি সেট (অক্ষর, সংখ্যা, আদর্শ ইত্যাদি); এগুলি দেখতে সক্ষম হতে আপনার অবশ্যই ফন্ট থাকতে হবে (আমরা পড়ি এমন ছোট "ছবি")। এগুলি ল্যাটিনএক্স ব্যবহার করে গুরুত্বপূর্ণ ছিল, কারণ প্রতিটি এক্সের জন্য একই সংখ্যা (বাইট) একটি ভিন্ন চরিত্রকে বোঝায়।

আজকাল এনকোডিংটি নির্বাচন করা আরও গুরুত্বপূর্ণ: মানটি ইউটিএফ -8, ইউনিকোডের সর্বাধিক সফল উপস্থাপনা (এএসসিআইআইয়ের সাথে সামঞ্জস্যপূর্ণ তবে সমস্ত ভাষা এমনকি চীনা এবং জাপানি অন্তর্ভুক্ত করার জন্য এটি নমনীয়) এবং ডাব্লু 3 সি স্ট্যান্ডার্ড। অন্য কথায়, এটিতে সমস্ত চরিত্রের সেট অন্তর্ভুক্ত রয়েছে।

কোলেশন: এটি ল্যাটিন থেকে উদ্ভূত একটি পুরানো ফ্যাশন শব্দ। এর অর্থ: পার্থক্য (ত্রুটি বা পরিবর্তন) সন্ধান করার জন্য মূলের সাথে একটি অনুলিপি (পান্ডুলিপি) তুলনা করুন। এটি অতীতে খুব দরকারী ছিল, তবে এখন এটি প্রায় একটি প্রত্নতাত্ত্বিকতা কারণ আমাদের নথি এবং বই কম্পিউটার ব্যবহার করে লেখা হয় এবং অনুলিপিটি সবসময় আসলটির মতো ical উদাহরণ: ইতালিয়ান ভাষায় (লাতিন থেকে উদ্ভূত) ক্রিয়াপদ "কোলাজিওনার" রয়েছে, তবে এটি অভিধানে রয়েছে এবং এটি কেউ ব্যবহার করে না।

সুতরাং, কোলেশন তুলনা অপারেটরদের আচরণটি নির্ধারণ করে: =,>, <, <=,> = ...

অবশ্যই সেই অপারেটরগুলি সিদ্ধান্ত নিতে ব্যবহৃত হয় দুটি স্ট্রিং একই কিনা, বা কোনও শব্দ অন্যটির চেয়ে "বৃহত্তর" হয়, যদি আমরা বাছাই করতে চাই তবে খুব গুরুত্বপূর্ণ। অক্ষরগুলি প্রতিটি ভাষার জন্য একই ক্রমে হয় না, তাই কোনও শব্দ একটি কোলিশেশন ব্যবহার করে অন্যর চেয়ে বড় হতে পারে তবে অন্যটি ব্যবহার না করে। ব্যবহারিক উদাহরণের জন্য [1] দেখুন।

  • "বিন" জোটগুলি সবচেয়ে কঠোর: নির্বাচন "বি" = "বি" => মিথ্যা

  • "ci" জোটগুলি সংবেদনশীল নয়: SELECT "b" = "B" => সত্য

  • "সাধারণ" কিছু পার্থক্য উপেক্ষা করার ঝোঁক: "a" = "à" => সত্য নির্বাচন করুন

  • অন্যগুলি এক বা একাধিক ভাষার জন্য নির্দিষ্ট। "সুইডিশ" উদাহরণ (আমি জানি না কেন শুল্ক প্রায়ই প্রায়শই ডিফল্ট হয়)

আমি এখনও একটি ওয়েবসাইট অনুসন্ধান করছি যেখানে প্রতিটি কলেজের আচরণের বর্ণনা দেওয়া আছে ... সেই উদাহরণগুলি আমার অভিজ্ঞতার কারণে।

[১] http://www.olcot.co.uk/sql-blogs/revised-differences-between-collation-sql_latin1_ জেনারাল_সিপি 1_সি_আস- এবং- ল্যাটিন 1_ জেনারাল_সি_এএস


1
মাইএসকিউএল এর কিছু বিটগুলিতে এখনও স্পিডিশ ডিফল্ট। এর উত্তরাধিকার মাইএসকিউএল সুইডেনে একটি ছোট দল '95 সালে ফিরে আসার পরে থেকে
ক্রিস উড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.