عنوان دوره | SQL SERVER [ مدیریت بانک های اطلاعاتی] |
عنوان جلسه | آشنایی با مفاهیم طراحی پایگاه داده |
مدرس دوره | مهندس گلی |
تاریخ برگزاری | 1398/08/ ساعت 14 الی 16 |
محل برگزاری | |
نحوه برگزاری | حضوری و ویدئو کنفرانس |
ارزشیابی کلاس | |
مستندات کلاس | ... |
Collation چیست ؟
روش مرتب سازی و مقایسه اطلاعات (نه مقایسه خیلی پیچیده بلکه مقایسه در حد حروف کوچک و بزرگ) را Collation می گویند.این مفهوم فقط برای داده های کاراکتری معنا دارد . Collation سطوح مختلفی دارد از جمله تعریف Collation در سطوح
1 – Instance
2- Data Base
3- Table
در سطح Instance شما در هنگام نصب SQLمی توانید Collation را تغییر دهید.در حالت دوم و در سطح دیتابیس هم می توانید این کار را بکنید ولی در نظر داشته باشید که با وجود Collation در سطح دیتابیس می توانید Collation متفاوتی به جدول و حتی فیلد های جدول دهید.یعنی یک فیلد آن می تواند Collation از نوع Persion داشته باشد و فیلد دیگری می تواند Collation از نوع Arabic داشته باشد.
همراه با تعیین Collation برای جدول یا دیتابیسخود باید به چهار نکته توجه کنیم.
Case Sensitive:(به صورت مخفف CS). یعنی اینکه به حروف بزرگ و کوچک حساس باشد یا نه .مثلا در مود فارسی این گزینه نیازی نیست چون حروف فارسی بزرگ و کوچک ندارد
Accent Sensitive: (به صورت مخفف AS) این گزینه حساسیت نسبت به لهجه را ایجاد می کند
Conna Sensitive در برخی زبان ها مثلا زبان ژاپنی دو نوع فرمت نوشتن وجود دارد با این گزینه این حالت لحاظ خواهد شد.
Width Sensitive اگر فیلدهای ما Varchar باشن در یک بایت ذخیره خواهند شد.واگر Nvarchar باشند در دو بایت ذخیره خواهند شد
قبل از SQL 2008 ما می توانستیم از Collation به نام Arabic 1256 استفاده می کردیم منتها این Collation برای زبان ما مشکل ایجاد می کرد.این مشکل بین حروف ی و ک بود که حالت فارسی و عربی آن با هم متفاوت بود.در این حالت وقتی اطلاعات جدول را Order می کردیم نتیجه درستی به ما نمی داد چون حروف ی فارسی را یک جا می آورد و حروف ی عربی را هم یک جای دیگر.در ضمن اگر کاربری مثلا به دنبال علی باشد و علی در دیتابیس به صورت عربی ذخیره شده باشد در نتیجه جستجو نخواهد آمد.
ولی بعد از SQL 2008 یک نوع جدید Collation به دیتابیس اضافه شد به نام Persion که دیگر مشکل حروف ی و ک فارسی و عربی در آن حل شده است .
البته راه حل بهتری هم وجود دارد و آن این است که کاربر را ملزم به ورود ی و ک به صورت فقط فارسی کنیم.یا اینکه دیتای ورودی کاربر را به Collation فارسی تبدیل کرده و در دیتا بیس ذخیره کنیم .
در ایجا شاید جالب باشد تعریفی هم از Code Page ارائه دهیم . Code Page زبان مورد استفاده ماست .با انتخاب Code Page دیتابیس می فهمد از چه علائم و کاراکتر هایی استفاده کند. Code Page های مختلفی وجود داشتند ولی همگی تحت Unicode به صورت استاندارد در آمدند.Unicode برای هر علامت ، عدد ، کاراکتر یک کد خاص اختصاص داده است مستقل از زبان ، سیستم عامل و برنامه .