مبانی پایگاه داده رابطه ای
در این مطلب قصد داریم با پایگاه داده رابطه ای آشنا شویم. پایگاه داده رابطه ای مانند SQL Server، اوراکل و MySQL. در پایگاه داده های رابطه ای، با جداول، ستون ها، رکورد ها و روابط سر و کار داریم.
جداول (tables)
جدول اولین چیزی است که در پایگاه داده رابطه ای با آن سر و کار داریم. هر جدول در واقع یک موجودیت یا موضوع را نمایندگی می کند. هر جدول باید نمایانگر یک موضوع واحد و خاص باشد. این جداول می توانند با موضوعاتی مانند مشتری، کارمند، ماشین آلات، پزشکان، کالاها و حتی در مورد رویداد هایی مثل فروش باشند. ترتیب ستون ها و رکورد ها در این جداول اهمیتی ندارد. هر جدول باید حداقل یک ستون تحت عنوان کلید اصلی داشته باشد. کلید اصلی با عنوان Primary Key شناخته می شود. در واقع این مقدار برای هر ردیف منحصر به فرد است و ردیف ها را از هم متمایز می کند. به طور مثال در مثال زیر CustomerID کلید اصلی به شمار می آید.
ستون ها (Columns)
ستون ها در واقع ویژگی هایی هستند که یک موجودیت یا موضوع را معرفی می کنند. به طور مثال جدول مشتری شامل ستون هایی مانند نام، نام خانوادگی، تاریخ تولد، تلفن مشتری و سایر ویژگی هایی است که موجودیت مشتری را توصیف می کند.
ردیف ها (Rows)
در واقع ردیف یک نمونه یکتا از یک موجودیت است. به طور مثال پوریا بغدادی یک نمونه واحد از موجودیت مشتری است. حتی اگر دو مشتری با این نام داشته باشیم، این دو مشتری از طریق کلید اصلی از هم متمایز می گردند. ردیف ها کلید اصلی درک روابط هستند چرا که از این طریق است که متوجه می شوید چگونه یک ردیف از جدول با چندین ردیف از جدولی دیگر در ارتباط است.
کلید (Key)
کلید ها به دودسته کلید اصلی (Primary Key) و خارجی (Foreign Key) تقسیم می شوند.
کلید اصلی (Primary Key)
کلید اصلی یک یا چند ستون از جدول اصلی که نمونه های موجود در یک جدول را از یکدیگر مجزا می کنند. به طور مثال کد مشتری ستونی است که مقادیر بدون تکرار (منحصر به فرد) را در خود ذخیره می کند و هر مشتری را از سایر مشتری ها مجزا می کند. در واقع کلید اصلی می تواند مجموعه ای از چندین ستون باشد که به آن کلید ترکیبی (Composite Primary Key) گفته می شود.
تمام جداول باید کلید اصلی داشته باشند. از طریق همین کلید هاست که جداول با هم مرتبط می شوند.
کلید خارجی (Foreign Key)
کلید خارجی در جداول اهمیت بسیاری دارد. در واقع روابط بین کلید اصلی از یک جدول و کلید خارجی از جدول دیگر ایجاد می شوند. فرض کنید 2 جدول فروش و مشتری را در اختیار دارید. CustomerID کلید اصلی جدول مشتری است و همین ستون کلید خارجی جدول فروش. کلید خارجی یکپارچگی داده های شما را نیز تضمین می کند. در واقع از ایجاد داده های بدون پدر در جدول جلوگیری می کند. در واقع شما در جدول Master تعدادی مشتری تعریف می کنید و در جدول فروش تنها همان مشتریان قابل تعریف هستند. با این ویژگی داده های بدون پدر (orphan) ایجاد نمی شوند.
به 2 جدول زیر توجه نمایید. جدول اول جدول مشتریان است که Customer ID در آن کلید اصلی است. در این جدول 4 مشتری تعریف شده است. این جدول بدون تکرار به عنوان جدول Master یا جدول پدر شناخته می شود. اما جدول دوم جدول فروش است. در این جدول CustomerID کلید خارجی است. همان طور که مشاهده می کنید کلید خارجی می تواند تکرار شود. از طریق کلید CustomerID این 2 جدول به یکدیگر مرتبط می شوند.
سفارش شماره 5 به مشتری شماره 1015 انجام شده است. مشتری که در جدول Master تعریف نشده است. در واقع ما مشتری با کد 1015 در جدول مشتریان نداریم. پس این رکورد یک رکورد بدون پدر یا orphan محسوب می شود.
روابط (Relationships)
اگر بتوانیم ردیف هایی از 2 جدل را با هم مرتبط سازیم بین این 2 جدول رابطه وجود دارد. به جداول زیر دقت کنید. جدول مشتری جدولی بدون تکرار است. در واقع اطلاعات هر مشتری تنها یک بار ثبت شده است. هر رکورد از جدول مشتری می تواند با چند رکورد از جدول فروش در ارتباط باشد. در واقع هر مشتری می تواند یک تا n بار از ما خرید کند. پس این دو جدول می توانند با هم در ارتباط باشند. این ارتباط از طریق فیلد مشترک CustomerID صورت می پذیرد.
روابط می توانند به صورت یک به یک، یک به چند و چند به چند باشند.
رابطه یک به یک (One to One)
این رابطه زمانی به وجود می آید که یک رکورد از جدول A تنها و تنها با یک رکورد از جدول B در ارتباط باشد و هر رکورد از جدول B تنها و تنها با یک رکورد از جدول A در ارتباط باشد. فرض کنید در سیستمی که هر شخص تنها قادر به افتتاح یک حساب بانکی باشد. رابطه جدول افراد با حساب بانکی یک رابطه یک به یک است، چرا که هر فرد تنها می تواند یک حساب بانکی داشته باشد و هر حساب بانکی تنها متعلق به یک فرد است.
رابطه یک به چند (One to Many)
این نوع رابطه که متداول ترین نوع رابطه در پایگاه داده رابطه ای می باشد زمانی به وجود می آید که یک رکورد از جدول A با چندین رکورد از جدول B در ارتباط باشد ولی یک رکورد از جدول B تنها با یک رکورد از جدول A در ارتباط باشد. به طور مثال رابطه مدیر پروژه با پروژه ها. هر مدیر پروژه می تواند چندین پروژه را مدیریت کند، اما یک پروژه تنها می تواند توسط یک مدیر پروژه مدیریت شود، پس رابطه یک به چند است.
رابطه چند به چند (Many to Many)
این رابطه زمانی به وجود می آید که یک رکورد از جدول A با چندین رکورد از جدول B در ارتباط باشد و همچنین یک رکورد از جدول B با چند رکورد از جدول A در ارتباط باشد. سیستمی را در نظر بگیرید که یک نفر قادر به افتتاح چند حساب بانکی باشد و هر حساب بانکی بتواند متعلق به چند نفر باشد. این رابطه یک رابطه چند به چند است. برای مدیریت کردن این روابط نیاز به یک جدول واسط به نام linking Table دارید که یک کپی از هر کلید های اصلی دو جدول حساب بانکی و افراد را در خود داراست.
این مطالب پیش نیازی است که برای کار کردن با دیتابیس های رابطه ای نظیر SQL Server نیاز به دانستن آن ها وجود دارد. پس سعی کنید این مطالب را به دقت مطالعه و درک کنید.
درباره حسین وثوقی
دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...
نوشته های بیشتر از حسین وثوقیمطالب زیر را حتما بخوانید
-
داده های نمونه و تمرینی برای یادگیری پاور بی آی | Power BI
431 بازدید
-
تنظیم مقدار پیش فرض اسلایسر تاریخ در Power BI
248 بازدید
-
دومین مسابقه بزرگ Power BI ایران
469 بازدید
-
نمونه پروژه داده های اقتصادی با Power BI
824 بازدید
-
نمونه پروژه قند مواد غذایی با Power BI
892 بازدید
-
اولین مسابقه طراحی داشبورد با Power BI
1.59k بازدید
[…] موجود خود در SQL Server خروجی اکسل […]
بسیار ساده و روان
با تشکر
ممنون از همراهی شما