در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش کوئری (Query) گرفتن از SQL قسمت 4 : کلیدهای اصلی و فرعی

در مقاله قبلی از همین سری مقالات در خصوص مفاهیم اصلی موجود در Table ها از قبیل Column و Row و Field صحبت کردیم .اما Object ها و مفاهیم موجود در طراحی Table ها در پایگاه داده کم نیستند و اینها تنها موارد اولیه ای بودند که با هم بررسی کردیم ، در این مقاله قصد داریم به مفاهیم مهمتری بپردازیم ، اشیاء و مفاهیمی از قبیل Constraint ها ، Trigger ها ، کلید های اصلی ای Primary Key ها و کلید های خارجی یا Foreign Key ها ، اگر فرصت شد در همین مقاله به بررسی مفاهیم ارتباطات بین Table ها یا Table Relationship هم خواهیم پرداخت اگر هم که نرسیدیم به امید خدا در مقاله بعدی حتما به این موارد خواهیم پرداخت.

مفهوم Constraint یا محدودیت در Table های SQL سرور

یکی از مواردی که خیلی برای ما در طراحی پایگاه های داده مهم است این است که مطمئن شویم که اطلاعاتی که وارد Table های ما می شوند معتبر باشند ، اینجا دقیقا محلی است که مفهوم Constraint یا محدودیت به کار ما می آید. یک مثال را با توجه به جدولی که مقالات قبلی هم با آن کار کردیم صحبت می کنیم ، گفتیم که ما با استفاده از تعیین Data Type یا نوع داده می توانیم تعیین کنیم که در این Column فقط مقادیری برای مثال از نوع Date یا Date//Time وارد شود و مقادیر دیگر نتواند وارد شود ، تا اینجای کار مشکلی نیست و همین تعیین Data Type کار ما را راه می اندازد اما زمانیکه صحبت از این می شود که ما می خواهیم در فلان Column یا فلان Row داده ای از همین نوع داده نتواند از تاریخ تعیین شده ای عقبتر درج شود بحث Constraint ها پیش می آید ، در واقع Constraint ها قوانین درج داده در Database ها هستند . برای مثال فرض کنید برای تاریخ استخدام یا تاریخ شروع به کار یا حتی تاریخ سابقه بیمه نباید افراد مجاز تاریخ را از زمان تعیین شده عقب تر وارد کنند و این محدودیت بایستی وجود داشته باشد. یا شما Row ای دارید که حتما باید تاریخ امروز در آن وارد شود و تاریخ دیگری قابل درج در آن نباشد. با استفاده از Constraint ها شما می توانید چنین محدودیت هایی را برای row ها یا Column های خاص خود در نظر بگیرید.

مفهوم Trigger در Table های SQL سرور

با اینکه Constraint ها خیلی خوب هستند اما قابلیت ها و عملیات های آنها محدود شده است ، در حقیقت ما کار زیادی نمی توانیم با Constraint ها انجام دهیم . خوب تصور کنید یک کار تقریبا پیچیده تر را می خواهیم انجام دهیم ، فرض کنید که می خواهیم اگر کاربر یک عملیات خاص را انجام داد و یا اینکه اگر یکی از فیلد های Table تغییر کرد ، یک Filed دیگر از یک Table دیگر مقادیرش تغییر کند ، اینجا دقیقا محلی است که از Trigger ها استفاده می کنیم. Trigger ها یک کد اجرای خاص را با توجه به تغییراتی که بر روی داده ها انجام می شود اجرا می کنند ، برای مثال فرض کنید که کاربری داده ای را در اطلاعات فروش ثبت می کند و ما می خواهیم در یک Table دیگر اطلاعات مربوط به بازرسی این کالا را داشته باشیم و به همین دلیل با استفاده از یک Trigger کاری می کنیم به محض اینکه کاربر ثبت فروش را انجام داد ، اطلاعاتی مربوط به آن کالا در جدول بازرسی نیز ثبت شود ، این دقیقا کاری است که Trigger برای ما انجام می دهد. البته تعاریف دیگری نیز از Trigger وجود دارد که امیدوارم با توجه به اینکه تعاریف درستی از این مورد در وب سایت های فارسی وجود ندارد حق کپی رایت انجمن تخصصی فناوری اطلاعات ایران و بنده حقیر را حداقل رعایت کنید و بعد مطلب را کپی کنید. در تعریفی دیگر از Trigger می توانیم بگوییم که Trigger ها یک نوع خاص از Stored Procedure ها هستند که کدهای تعیین شده ای را با توجه به یک Action یا عملیات خاص بر روی یک table تعیین شده انجام می دهند ، عملیاتی مانند INSERT یا DELETE یا UPDATE یا هر چیز دیگری در داده های ما ، Trigger ها جزو Object های یک Database محسوب می شوند و یه یک Table متصل می شوند و بصورت خودکار مانند یک اسکریپت اجرا می شوند.

مفهوم Primary Key در Table های SQL سرور

تقریبا همه Table هایی که شما در یک Database ایجاد می کنید دارای یک مفهوم هستند به نام کلید اصلی یا Primary Key ، کلیدهای اصلی ای Primary Key ها در واقع شناسه های منحصر به فردی هستند که هر Row یا رکورد موجود در Table شما را مشخص می کنند. ساده ترین مثال یعنی اینکه Primary Key در یک Table برای هر رکورد منحصر به فرد است ، اگر Database نیروی انسانی یک سازمان را در نظر بگیرید شناسه ملی یا Social Security Number افراد می تواند به عنوان Primary Key در جدول محسوب شود زیرا تنها یک فرد می تواند این شماره را به خود اختصاص دهد ( البته من در ایران این موضوع رو تایید نمی کنم ولی ما میگم هست شما هم بگین هست خوبیت نداره ) . برای اینکه درک بهتری از موضوع Primary Key داشته باشید جدول همیشگی زیر را در نظر بگیرید ، در جدول زیر بهترین گزینه برای انتخاب به عنوان Primary Key کدام گزینه می تواند باشد ؟ ممکن است چندین نفر مشتری به نام Mohammad و نام خانوادگی Nasiri وجود داشته باشند ، بنابراین این گزینه نمی تواند به عنوان Primary Key باشد ، تاریخ عضویت یا Join Date هم نمی تواند شناسه منحصر به فردی باشد زیرا ممکن است در یک روز ده ها مشتری جدید به سیستم اضافه شود ، طبیعی است که State هم نمی تواند به عنوان Primary Key باشد زیرا فقط کرج میلیون ها نفر جمعیت دارد ، بهترین گزینه در جدول زیر برای انتخاب به عنوان Primary Key گزینه Customer ID می باشد که بصورت منحصر به فرد می تواند یک رکورد را برای ما مشخص کند.در تصویر زیر با رنگ قرمز Primary Key جدول مشخص شده است.

منظور از Primary Key و Public Key در SQL سرور

مفهوم کلید خارجی یا Foreign Key در Table های SQL سرور

یکی دیگر از مفاهیمی که در برگیرنده بحث کلید است به نام Foreign Key یا کلید خارجی معروف است. در خصوص هر یک از این مفاهیمی که توضیح دادیم در آینده بصورت مفصل صحبت خواهیم کرد بنابراین اصلا نگران نباشید. اما به سراغ بحث اصلی برویم ، کلید خارجی یا foreign Key برای ارتباط برقرار کردن یا ایجاد Relationship بین Table ها مورد استفاده قرار می گیرد ، این مبحث جزو مهمترین مباحث در طراحی Database ها می باشد. یکی از مهمترین مسائلی که در طراحی پایگاه های داده بایستی در نظر گرفته بشود بحث جلوگیری از به وجود آمدن تکرار داده ها است. برای مثال اگر شما Database ای دارید که در آن اطلاعات مشتریان قرار دارد و از طرفی Database دیگری دارید که در آن سفارش های مشتریان وجود دارد نباید داده های تکراری در خصوص مشتریان در این Database ها وجود داشته باشد اما در این میان قاعدتا مشتریان باید به اطلاعات سفارش ها و سفارش ها به مشتریان مورد نظر مرتبط باشند. اینجا دقیقا زمانی است که کلید خارجی یا Foreign Key به کمک ما می آید. در واقع Foreign Key یک Table یا بهتر بگوییم یک Column است که به Primary Key یک Table دیگر اشاره می کند و به این ترتیب ارتباط بین دو Table برقرار می شود. بنابراین در مثال ما ، ابتدا یک Column در جدول سفارش ها ایجاد می کنیم و آن را به عنوان کلید خارجی یا Foreign Key قرار می دهیم و این جدول را به Primary Key موجود در Table ای که Customer ها یا مشتریان در آن قرار دارند مرتبط می کنیم. ITPRO باشید.

نویسنده : محمد نصیری

منبع : جزیره بانک های اطلاعاتی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#کلید_خارجی_یا_foreign_key_در_sql #trigger_چیست #آموزش_sql_server #آموزش_گام_به_گام_sql_سرور #آموزش_sql_سرور #کلید_اصلی_یا_primary_key_در_sql #آموزش_گام_به_گام_query_گرفتن #constraint_در_sql_چیست
عنوان
1 آموزش کوئری (Query) گرفتن از SQL قسمت 1 : معرفی SQL سرور رایگان
2 آموزش کوئری (Query) گرفتن از SQL قسمت 2 : Relational Database ها رایگان
3 آموزش کوئری (Query) گرفتن از SQL قسمت 3 : ساختار Table ها رایگان
4 آموزش کوئری (Query) گرفتن از SQL قسمت 4 : کلیدهای اصلی و فرعی رایگان
5 آموزش کوئری (Query) گرفتن از SQL قسمت 5 : رابطه بین جدول ها رایگان
6 آموزش کوئری (Query) گرفتن از SQL قسمت 7 : طراحی جدول ها رایگان
7 آموزش کوئری (Query) گرفتن از SQL قسمت 7 : طراحی ساده یک DB رایگان
8 آموزش کوئری (Query) گرفتن از SQL قسمت 8 : Normalization رایگان
9 آموزش کوئری (Query) گرفتن از SQL قسمت 9 : دستورات اولیه SQL رایگان
10 آموزش کوئری (Query) گرفتن از SQL قسمت 10 : محیط Management Studio رایگان
11 آموزش کوئری (Query) گرفتن از SQL قسمت 11 : اتصال به Database رایگان
12 آموزش کوئری (Query) گرفتن از SQL قسمت 12 : ساختار دستور SELECT رایگان
زمان و قیمت کل 0″ 0
4 نظر
مریم  جلالی

ممنون از توضیحات خوبتون.

میخواستم بپرسم که :

آیا امکانش هست که فیلدی که در یک جدول ،کلید اصلی هست درون یه جدول دیگه هم به عنوان کلید اصلی و هم کلید خارجی تعریف بشه؟

محمد نصیری

لطفا سئوالتون رو در قالب یک تاپیک جداگانه در انجمن پایگاده داده مطرح کنید تا به بهترین شکل پاسخ داده بشه.

وحید خرمی

سلام من میخوام توی table یک ستون مقادیریش به این صورت باشه

حرف اول با c شروع بشه حرف چهارم یکی از حروف a تا e

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

یعنی مثلا c????a یا c????b

محمد نصیری

لطفا سئوالتون رو در تالار گفتمان مطرح کنید با تشکر

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....