آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تعریف محدودیت ها (constraints)

دوره های مرتبط با این مقاله

تعریف محدودیت ها (constraints)

شما یک کلید اولیه و یک را برای جدول خود تعریف کرده اید. به هرحال کار ما تمام نشده و باید یکپارچگی محدودیت ها را ترکیب کنیم.

توضیحات

به نظر من اشتباه اصلی در طراحی ای است که تمام چک کردن داده را در داخل برنامه و ردیف کاربر انجام دهیم، در حالیکه دیتابیس و مکانیزم های آن برای برقراری تمامیت داده ها را نادیده می گیریم. از آنجایی که محدودیت ها برای موتور دیتابیس داخلی هستند، گزینه ی موثرتری برای چک کردن درستی می باشند. شما باید محدودیت های CHECK, UNIQUE, DEFAULT, Primary Key, و Foreign Key را برای محافظت از داده در مقابل ورودیهای نامعتبر تعریف کنید. با استفاده از محدودیت هایی که در ابزار مدلسازی داده نیز نمایش داده می شوند، می توان ورودیها را در داخل مدل داده ی خود بیشتر ثبت کرد.

داستانی که همیشه استفاده می کنم برای تکمیل بحث خود در مورد ترکیب محدودیت های داخلی (native constraints) حول یک تعامل مشاوره ( consulting engagement) می چرخد که سال ها پیش به بررسی آن پرداختم. برنامه ی مشتری روی Visual BASIC نوشته شده بود و چک کردن همه ی داده ها در داخل کد این برنامه انجام شد. متاسفانه خود دیتابیس کم و بیش به عنوان محل ذخیره سازی تعریف شده بود. وارد کردن یک داده از یک سیستم کروه سوم لازم بود و یک وارد کننده ی جدید با استفاده ازبرنامه ی VB، به عنوان پایگاه ( زیرا آنجا تنها مکانی است که همه ی قوانین داده ها قرار می گرفتند) نوشته شد. اطمینان کافی داریم که برخی قوانین از بین رفتند و نتیجه ی ورودی دیتابیس را با داده ی نامعتبر غربال کرد.

هنگام نفوذ به یکپارچگی محدودیت ها (leveraging constraints integrity) همیشه آنها را نامگذاری کنید. اگر SQL Server مجاز است که به طور خودکار نام محدودیت تولید کند، ممکن است از دیتابیسی به دیتابیس دیگر متفاوت باشد. اگر تعریف از یک محدودیت باید تنظیم شود، منطق خاص در مقابل ویوهای سیستم باید نوشته شود تا آنچه را که نام تولید شده به آن اختصاص داده شد، شکل دهد. اگر محدودیت های شما در جلو نامگذاری شده اند، کد گذاری خاص در اینجا جلوگیری می شود علاوه براینکه ازیک نصب به نصب دیگر به دیتابیس ها فضای استحکام می بخشد.

در این مثال دودیتابیس ایجاد کرده و به هر دو یک جدول یکسان افزوده ایم. محدودیت ها رابا عنوان UNIQUE و DEFAULT نامگذاری نمی کنیم.

create database db1‎
go
use db1‎
go
create table t1 (value int not null default 1)‎
create table t2 (value int not null unique)‎
go
create database db2‎
go
use db2‎
go
create table t2 (value int not null unique)‎
create table t1 (value int not null default 1)‎
go

اجازه بدهید محدودیت ها رادر داخل ویوهای سیستم بررسی کنیم.

use db1‎
go
select db_name() as dbname, name from sys.default_constraints
select db_name() as dbname, name from sys.key_constraints
go
use db2‎
go
select db_name() as dbname, name from sys.default_constraints
select db_name() as dbname, name from sys.key_constraints
go
آموزش SQL Server
  • 3232
  •    840
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .