ايجاد کردن Check Constraint

شناخت Check Constraint
يکی از مهمترين بازرسی های طراحی پايگاه داده يکپارچه سازی داده ها می باشد. قاعده يکپارچگی داده ها تضمين مي کند که داده های ايجاد شده در پايگاه داده اگر درست نباشد حداقل قابل قبول می باشد. چندين سطح از يکپارچگی داده ها وجود دارد. در درس 7 ما درباره يکپارچگی رابطه ای مطالعه کرديم که تضمين می کند اجتماع بين جداول ايجاد و به طور صحيح نگهداری می گردند.
Check Constraintsبرای اجرای دو فرم اضافی از يکپارچگی پايگاه داده استفاده می شود. domain Integrity و entity Integrity . در اصطلاحات رابطه ای که Domain محدوده ای از مقاديری است که يک ستون می تواند داشته باشد. نوع داده های يک ستون يکی از ويژگيهای از يک Domain می باشد، اما تعريف نوع داده معمولاً کافی نيست. برای مثال، يک ستون Smallint می تواند شامل مقادير صحيح از 768/32- تا 767/32 می باشد که ممکن نوع داده مناسبی برای يک ستونی که شامل سالی است که يک کارمند مدرک دانشگاهي را در دريافت می کند باشد. اما حدود اصلی مقادير ستون Year Degree Awarded بيشتر محدود شده و بين 1900 و سال جاری می باشد. شما از يک Check Constraints استفاده می کنيد، برای تخمين اينکه هيچ کس به طور واقعی مقادير 1543 يا 2075 را به عنوان مقدار ستون وارد نمی کند. Entity Integrity Constraints جامعيت از موجودی خودش را اجرا می کند. مهمترين محدوديتهای يکپارچگی موجوديت آن است که هر موجوديت Entity Integrity بايد به طور واحد قابل شناسايی باشد. اين محدوديت به وسيله مشخص کردن يک کليد اصلی برای جدول انجام می گيرد. يکپارچگی موجوديت همچنين می تواند درگير ارزيابی شرطی از چندين ستون در يک جدول باشد و اين نوع از محدوديت اغلب بيشتر با استفاده از Check Constraints انجام می گيرد. برای مثال، اگر يک جدول شامل ستونهای کشور و ايالت باشد شما ممکن از يک Check Constraints برای مشخص کردن اينکه ارزش ستون State ، "AZ" معتبر می باشد فقط اگر ستون Country شامل مقادير USA باشد. Check Constraint به عنوان Boolean Expressions شناخته می شود يک Boolean Expressions برای مقادير True يا False ارزيابی می گردد. Boolean Expressions را در درس 13 می آموزيم. در اين درس ما از عبارت LEN()>=4 استفاده می کنيم. LEN يک تابع Transact-SQL می باشد که تعدادی کارکترهای يک رشته را برمی گرداند. بنابراين عبارت LEN()>=4 ارزش آن اگر شامل 4 يا بيشتر کارکتر باشد ارزش آن True و اگر کمتر از 4 باشد ارزش آن False می گردد.


ايجاد کردن Check Constraint)
مانند ايندکس ها و پيوندها شما می توانيد Check Constraints را با استفاده از کادر محاوره ای Properties از Table Designer ايجاد کنيد.
1- Table Designer را برای جدول Oils به وسيله کليک راست کردن نام جدول در قاب Details باز کرده و Design Table را انتخاب می کنيم. Table Designer , SQL Server را باز می کنيم.

2- دکمه Constraints را کليک کرده SQL Server کادر محاوره ای Table Designer Properties را با صفحه خصوصيات Constraints Check نشان داده شده باز می کنيم.

3- New را کليک کرده Ck-Oils , SQL Server را به عنوان نام محدوديت پيشنهاد می دهد. برای اين مثال اين نام را می پذيريم.

4- Len(Oil Name)>=4را به عنوان عبارت محدوديت وارد می کنيم.

راهنمايی: اگر شما يک Check Constraint جديد را ايجاد می کنيد و مراقب نيستيد که آيا داده های موجود متابعت می شوند، شما می توانيد بگويد به SQL Server که از ايجاد کردن داده به وسيله چک نکردنCheck Existing Data On Creation از محدوديت چشم پوشی کند.
5- Close را کليک کرده SQL Server کادر محاوره ای Designers Properties Table را می بندد.
6- دکمه Save را کليک کرده SQL Server کنترل می کند که همه سطرها در جدول باCheck Constraint مواجه می شوند و سپس محدوديت را ذخيره می کنيم.

مديريت Check Constraints
به عنوان بخشی از طرح پايگ اه داده، Check Constraints نبايد تحت شرايط نرمال نياز به مقدار زياد نگهداری داشته باشد. شما آنها را يکباره تعريف کرده زمانی که پايگاه داده را ايجاد می کنيد. اگر چه طرحهای پايگاه داده به تدريج تغيير خواهد کرد. تغييرات Check Constraints تغيير خواهد کرد. Enterprise Manager نگهداری محدوديتها را آسان می سازد.

تغيير دادن Check Constraint
Table Designer مکانيزمی برای تغيير متن از يک Check Constraint از همان کادر محاوره ای که شما برای ايجاد آن استفاده کرديد فراهم می کند.

تغيير متن محدوديت
1- اگر Table Designer برای جدول Oils هنوز از تمرين قبل باز نمی باشد به وسيله کليک راست کردن نام جدول در قاب Details آن را باز کرده وDesign Table را انتخاب می کنيم. Table Designer , SQL Sarver را باز می کند.

2- دکمه Constraints را کليک کرده SQL Sarver کادر محاوره ایTable Designer را با صفحه خصوصيات Check Constraint باز می کند.

3- اطمينان حاصل کنيد کهCk – Oilsدر Constraint Combo Box انتخاب شده نشان داده شده است.
4- متن محدوديت را برایLEN (Oil Name )>2 به عنوان عبارت محدوديت جديد تغيير می دهيم.

5- Close را کليک کردهSQL Server کادر محاوره ایTable Designer’s Properties را می بندد.
6- دکمه Save را کليک کرده SQL Server همه سطرها در جدول را که با Check Constraint جديد مواجه است را کنترل کرده و سپس محدوديت را ذخيره می سازد.

نگهداری Check Constraints
مانند ديگر خصوصيات جدول ديگر، Check Constraints در کادر محاوره ای Properties ازTable Design نگهداری می گردد.

تغيير نام يک Check Constraints
1- Table Designer برای جدول Oils به وسيله کليک راست کردن نام جدول در قاب Details باز کرده و Design Table را انتخاب می کنيم. Table Designer , SQL Server را باز می کنيم.

2- دکمه Constraints را کليک کرده SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصيات Check Constraint نشان داده شده باز می کند.

3- Ck-Oils را در فيلد Constraint Name انتخاب کرده و آن را به Ck-Deleteme تغيير می دهيم.

4- Close را کليک کرده SQL Server کادر محاوره ای Properties را می بندد.
5- دکمه Save را کليک کردهSQL Server همه سطرها در جدول که باCheck Constraint مواجه شده اند را کنترل می کند و سپسConstraint ذخيره می گردد.

حذف يک Check Constraint
1- Table Designer برای جدول Oils را به وسيله کليک راست کردن نام جدول در قاب Details باز کرده و جدول Design را انتخاب می کنيم. Table Designer , SQL Server را باز می کند.

2- دکمه Constraints را کليک کرده SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصياتCheck Constraint نشان داده شده باز می کنيم.

3- اطمينان حاصل کنيد که Ck-Deleteme در فيلد محدوديت انتخاب شده می باشد و سپس Delete را کليک می کنيم. SQL Server محدوديت را برمی دارد.

4- Close را کليک کرده SQL Server کادر محاوره ای Properties را می بندد.
5- دکمه Save را کليک می کنيم. SQL Server محدوديت را برمی دارد.
6- Table Designer را می بنديم.