پایگاه داده رابطهای (به انگلیسی: Relational databases) به آن دسته از پایگاههای داده گفته میشود که بر اساس مدل رابطهای طراحی و ایجاد شده باشند. پس از پایگاههای دادهای سلسله مراتبی و شبکهای، که هر یک دارای ضعفهایی بودند، متخصصان در جستجوی مدلی بودند که دارای ساختار دادهای با انتزاع قوی ابداع گردید. مدل رابطهای در سال ۱۹۷۰ توسط ادگار کاد مطرح شد. این مدل دارای ساختار دادهای با انتزاع قوی بوده و اساساً ساختار دادهای در آن بر اساس یک مفهوم ریاضی به نام رابطه استوار است. در اینجا لازم است به این نکته توجه شود که مفهوم رابطه با مفهوم ریاضی آن تاحدودی متفاوت است.
ساختار دادههای رابطهای
برای طراحی پایگاه دادهها در سطح انتزاعی پایینتر از سطح مدلسازی، به یک ساختار دادهای از یک مدل دادهای نیاز است و اساساً همین مدل دادهای تأمینکننده محیط انتزاعی است. در پایگاه داده رابطهای بالاخص در محیط انتزاعی مورد استفاده کاربر، رابطه نمایشی جدولی دارد و اساساً پایگاه داده رابطهای مجموعهای است از تعدادی نوع جدول. مفاهیم ساختار جدولی عبارتند از: سطر، جدول و ستون
هر جدول از نظر محتوای دادهای مجموعهای است از نمونههای متمایز از انواع سطرها و هر سطر نیز مجموعهای از مقادیر است که هر کدام از یک مجموعه برگرفته شدهاند. به هر یک از عناصر سطر یک ستون گویند. لازم است ذکر شود که در ساختار جدولی، تنها عنصر ساختاری اساسی همین مفهوم نوع جدول است.
تعریف رابطه
با فرض وجود n مجموعه S1، S2، …، Sn رابطه R تعریف شده روی این n مجموعه، مجموعهای است از n تاییها که به آن تاپل میگویند به نحوی که جزء اول هر n تایی از S1، جزء دوم از S2 و… مقدار بگیرد. هریک از مجموعههای S1، S2 و… میدان یا دامنه نامیده میشود. دامنه، مجموعه مقادیری است که یک صفت از رابطه مشخص میتواند داشته باشد.
برای درک بهتر موضوع مثالی را از جدول اعضای کتابخانه در یک دانشگاه با جزییات بیشتر بیان میکنیم. فرض کنید مجموعههای زیر را داشته باشیم:
مجموعه مقادیر شماره دانشجویان:S1
مجموعه اسامی دانشجویان:S2
مجموعه مقادیر مقطع تحصیلی:S3
مجموعه مقادیر شماره عضویت در کتابخانه:S4
مجموعه مقادیر تاریخ عضویت در کتابخانه:S5
در اینصورت، STT با پنج صفت خاصه مرتبط با پنج مجموعه بالا، یک رابطه بوده و به صورت زیر نوشته میشود:
(STID,STNAME,STDEG,STMJR,STDEID)
با فرض وجود n دامنه D1، D2،... ، Dn رابطه R از دو قسمت تشکیل شدهاست:
۱- مجموعه عنوان: مجموعهای نامدار است که از n صفت به صورت Ai: Di که در آن هر Ai نام یک صفت است و هر Di نام دامنه صفت است. به این مجموعه شمای رابطه نیز میگویند که به صورت شماتیک چنین است:
{ <A1: D1> , <A2: D2> , … , <An: Dn>}
۲- مجموعه بدنه: مجموعهای است از m تاپل به نحوی که t خود مجموعهای است از n عنصر به صورت Ai: vi که در آن vi مقداری است از نوع دامنه Di.
{ <A1: vi1> , <A2: vi2> , … , <An: vin>}
(i = ۱ , ۲ , ۳ , … , m)
تناظر بین مفاهیم رابطهای و مفاهیم جدولی
برای پیادهسازی مدل رابطهای در محیط انتزاعی از رابطه استفاده میشود. برای پیادهسازی مدل رابطهای در ساختار پایگاه داده از مفهوم جدول استفاده میشود. در جدول ۱ تناظر بین اجزاء، دو مفهوم رابطه و جدول آورده شدهاند.
جدول ۱: تناظر بین اجزاء مفهوم رابطه و جدولی در دادههای رابطهای
اجزاء مفهوم رابطه
اجزاء مفهوم جدولی
رابطه
جدول
تاپل
سطر
صفت
ستون
دامنه
مجموع مقادیر ستون
درجه
تعداد ستونها
کاردینالیتی
تعداد سطرها
نکته: مفاهیم جدول و رابطه تا حدود زیادی به یکدیگر نزدیک بوده و در مواردی به اشتباه به جای یکدیگر مورد استفاده قرار میگیرند.
مثال: جدول زیر، مثالی است که نشان دهنده مفاهیم جدول و رابطه در نمونه عینی از عضویت در کتابخانهای دانشگاهی.
ویژگیهای رابطه
رابطه به عنوان تنها عنصر ساختاری اصلی در مدل رابطهای برای نمایش انواع موجودیتها و انواع ارتباطات بکار میرود. در واقع در مدل رابطهای هم نوع موجودیت و هم نوع ارتباط با مفهوم رابطه نمایش داده میشوند و در نتیجه هم نمونه موجودیت و هم نمونه ارتباط با مفهوم تاپل نشان داده میشوند. رابطه دارای چهار ویژگی زیر میباشد:
رابطه تاپل تکراری ندارد، زیرا بدنه رابطه مجموعهاست و مجموعه نمیتواند عنصر تکراری داشته باشد.
تاپلها نظم ندارند زیرا بدنه رابطه مجموعهاست و مجموعه در حالت کلی فاقد نظم است.
صفات رابطه نظم مکانی ندارند زیرا سرآیند، رابطه مجموعهاست و مجموعه در حالت کلی فاقد نظم است.
تمام صفات تک مقداری (تجزیه نشدنی) هستند زیرا در نمایش جدولی رابطه، در تقاطع هر سطر و ستون باید یک مقدار وجود داشته باشد.
انواع کلیدها در مدل رابطهای
ابر کلید
هر ترکیبی از صفات جدول را که یکتایی مقدار داشته باشد، ابر کلید گویند. به بیانی دیگر هر زیر مجموعه عنوان رابطه میباشد که یکتایی مقدار در بدنه رابطه را داشته باشد. تعریف دیگر ابر کلید عبارت است از هر ترکیبی از اسامی صفات رابطه که در هیچ دو تاپل مقدار یکسان نداشته باشد.
کلید کاندیدا
کلید کاندیدا امکانی است برای ارجاع به «تک تاپل» در رابطه. مجموعه صفات k از رابطه R یک کلید کاندیدا است، اگر دارای خاصیت غیر کاهشی و یکتایی باشد.
کلید اصلی
یکی از کلیدهای کاندیدا رابطه که شرایط زیر را داشته باشد:
شناساییکننده نوع موجودیت (تک تاپل) در رابطه باشد. مانند شماره عضویت کتابخانه برای هر دانشجو.
از نظر طول، کوتاهتر باشد؛ یعنی بین دو کلید کاندیدا، کلید کوتاهتر برای کلید اصلی بودن بهتر است.
کلید جانشین
هر کلید کاندیدا به غیر از کلید اصلی را کلید بدیل گویند.
کلید خارجی
دو رابطه R1 و R2 را در نظر بگیرید. هر زیر مجموعه از صفات رابطه R2 که هر مقدار معلوم آن با یک مقدار از کلید کاندیدا R1 برابر باشد، کلید خارجی در رابطه R2 است. نقش کلید خارجی برای نمایش ارتباطات بین انواع موجودیتها (و در نتیجه بین نمونههای آنها) بکار میرود.
انواع رابطه
انواع رابطه عبارتند از:
رابطه نامدار: رابطهای که با یک نام به سیستم معرفی شده باشد.
رابطه مبنا: نوعی رابطه نامدار که استقلال وجودی دارد و مشتق از رابطههای دیگر نیست و دادههای ذخیره شده متناظر دارد.
رابطه مشتق: رابطهای که به کمک یک عبارت رابطهای بر حسب رابطههای نامدار دیگر و در نهایت برحسب رابطههای مبنا تعریف میشود. انواع رابطه و ارتباط بین آنها در شکل ۱ آمدهاست.
شکل ۱: نمایش نحوه ارتباط بین رابطه ها
قواعد جامعیت در مدل رابطهای
در هر محیط عملیاتی همیشه مجموعهای از قواعد معنایی،[۱]
بامحدودیتهای جامعیتی،[۲] وجود دارند. اگر دادههای ذخیره شده در پایگاه داده همواره این محدودیتها را رعایت کنند، جامعیت پایگاه داده تأمین میگردد. جامعیت پایگاه دادهها به معنی صحت، دقت و سازگاری دادههای ذخیره شده در پایگاه دادهها در تمام لحظات است. هر سیستم پایگاه داده باید بتواند جامعیت پایگاه داده را کنترل و تضمین کند. عواملی مانند آنچه در زیر آمدهاست میتواند باعث نقض جامعیت شود:
اشتباه در برنامهها
اشتباه در ورود اطلاعات از سوی کاربران
مشکلات سختافزاری و نرمافزاری مرتبط با دادهها
عدم انجام کامل فرایند بر روی دادهها
وجود افزونگی و تعدد در دادههای تکراری.
برای کنترل و تضمین جامعیت، قواعدی لازم است تا سیستم مدیریت بتواند بر اساس آنها عمل کرده و باعث انطباق محتوای پایگاه با واقعیات باشد و این قواعد را قواعد جامعیتی یا محدودیتهای جامعیتی گویند.
انواع قواعد جامعیت
قواعد جامعیت در مدل رابطهای به دو رده کلی تقسیم میشوند که به شرح هریک خواهیم پرداخت:
قواعد کاربری که گاه به آنها قواعد محیطی یا قواعد وابسته به داده نیز میگویند، قواعدی هستند که توسط کاربر مجاز و برای یک پایگاه داده خاص تعریف میشوند. این قواعد وابسته به واقعیات محیط هستند و در بعضی منابع به آنها محدودیتهای جامعیتی معنایی نیز میگویند. مانند قواعدی که برای طراحی یک پایگاه دادههای کتابشناختی از سوی کتابدار سیستم برای پایگاه دادههای کتابخانه استفاده میشود. قواعد کاربری در مدل رابطهای به چهار دسته تقسیم میشوند:
محدودیت میدانی: محدودیتی است ناظر بر میدان هر صفت خاصه و مقادیر مجاز آن را مشخص میکند. مانند اینکه صفت خاص یک رکورداطلاعاتی و بازه آنچه چیزی باشد و چه مقادیری را بگیرد.
محدودیت صفتی: محدودیتی است ناظر بر یک صفت و نوع آن را مشخص میکند.
محدودیت رابطهای: محدودیتی است ناظر بر یک رابطه و مقادیر مجاز یک متغیر رابطهای را مشخص میکند.
محدودیت پایگاهی: محدودیتی است ناظر بر دو یا چند متغیر رابطهای به نحوی که آنها را بهم مرتبط میکند.
فرا قواعد
قواعدی هستند که باید توسط هر سیستم رابطه در هر پایگاه داده رابطهای اعمال گردند. این قواعد به سه گروه کلی تقسیم میشوند:
قاعده جامعیت موجودیتی:[۵] این قاعده ناظر بر کلید اصلی است و به این شرح است که هیچ جزء تشکیل دهنده کلید اصلی رابطه نمیتواند مقدار هیچ داشته باشد. دلیل توجیهکننده این قاعده این است که هر مقدار یک کلید اصلی، در واقع شناسه آن تاپل در رابطهاست و عامل تمییز نمونههای موجودیت (تاپلها) در رابطهاست و بدیهی است که عامل تمییز خود نمیتواند مقدار هیچ یا ناشناخته داشته باشد.
قاعده جامعیت ارجاعی:[۶] این قاعده ناظر بر کلید خارجی بوده و به این شرح است که اگر صفت خاصه Ai در رابطه R2 کلید خارجی باشد در این صورت Ai در R2 میتواند مقدار هیچ داشته باشد، در غیر اینصورت باید حتماً مقداری باشد که در رابطه مرجع R1 وجود دارد عبارت دیگر مقدار کلید خارجی نمیتواند در رابطه مرجع وجود نداشته باشد. دلیل توجیه این قاعده این است که کلید خارجی عامل ارجاع از یک نمونه موجودیت به نمونه موجودیت دیگر است و بدیهی است که نمیتوان به نمونه موجودیت ناموجود ارجاع داد.
قاعده جامعیت دامنه :این قاعده ناظر بر همه فیلدهااست اینکه باید دامنه صحیح وارد شود یعنی نمره باید بین ۰تا۲۰ باشد و سن نمیتواند منفی باشد
مثالی از یک محیط عملیاتی
سازمان یا شرکتی را در نظر میگیریم که پروژههایی را در دست اجرا دارد. در پروژهها از قطعاتی در کار ساخت استفاده میشود و تهیهکنندگانی این قطعات را تأمین میکنند. قطعات در پروژهها استفاده میشوند. هر تهیهکننده در یک شهر دفتر دارد. هر قطعه میتواند در ساخت قطعه دیگر نیز بکار رود. کارمند مدیر پروژه است یا در پروژه کار میکند. نمودار زیر را میتوان برای این مثال ارائه داد.
ارتباط ممکن است مابین بیش از دو موجودیت باشد (SPJ). اطلاعاتی که از این ارتباط بین سه موجودیت به دست میآید همیشه لزومًا همان اطلاعاتی نیست که از ارتباط دو به دوی موجودیتها بدست میآید.
به عنوان نمونه:
تهیهکننده S1 قطعه P1 را تهیه میکند.
قطعه P1 در پروژه J1 به کار رفتهاست.
تهیهکننده S1 برای پروژه J1 قطعه تهیه کردهاست.
تهیهکننده S1 قطعه P1 را برای استفاده در پروژه J1 تهیه کردهاست.