مدل رابطه‌ای کیست؟ توضیح بده.
مدل رابطه‌ای با کوته‌نوشت RM در زمینه مدیریت پایگاه داده، یک دیدگاه برای مدیریت داده به کمک یک «ساختار» و یک «زبان سازگار با منطق محمولات مرتبه اول» است، که اولین بار در سال ۱۹۶۹ و توسط دانشمند رایانه انگلیسی ادگار اف. کاد توصیف شد، در این دیدگاه تمام داده‌ها قالب «تاپل» نمایش می‌یابد، که این تاپل‌ها به صورت «رابطه» گروه‌بندی می‌شوند. پایگاه داده‌ای که به صورت مدل رابطه‌ای سازماندهی شده باشد، پایگاه داده رابطه‌ای نامیده می‌شود.هدف از مدل رابطه‌ای ایجاد یک روش اعلانی برای تعیین داده و پرسمان است: یعنی کاربران به صورت مستقیم بیان می‌کنند که پایگاه داده چه اطلاعاتی دارد، و آن‌ها از پایگاه داده چه اطلاعاتی می‌خواهند، و این موضوع برعهده سامانه مدیریت پایگاه داده‌است که مواظب توصیف نوع ساختمان داده لازم برای ذخیره داده و نیز رویه‌های بازیابی برای جواب دادن به پرسمان‌ها باشد.بیشتر پایگاه داده‌های رابطه‌ای از زبان تعریف داده و پرسمان SQL استفاده می‌کنند؛ این سامانه‌ها چیزی را پیاده‌سازی می‌کنند که به عنوان «تقریب مهندسی» به مدل رابطه‌ای در نظر گرفته می‌شوند. یک جدول در طرح‌واره پایگاه داده SQL با یک متغیر محمولاتی متناظر است، محتوای یک جدول با یک رابطه نگاشت دارد؛ و محدودیت کلیدها و دیگر محدودیت‌ها و نیز پرسمان‌های SQL با خود محمولات متناظر است. با این حال، پایگاه داده‌های SQL در خیلی از جزییات از مدل رابطه‌ای شده‌است، و آقای کاد به شدت در برابر این انحراف‌هایی که اصول اولیه را به خطر می‌اندازند، مخالفت کرده‌است.بررسی اجمالی.ایده اصلی مدل رابطه‌ای، همان «توصیف یک پایگاه داده به صورت گردآوردی از محمولات روی مجموعه محدودی از متغیر محمولاتی» است، که آن محمولات، توصیف کننده روی مقادیر ممکن و ترکیب مقادیر ممکن هستند. محتوای پایگاه داده در هر زمان یک مدل (منطقی) محدود از پایگاه داده‌است، یعنی یک مجموعه از رابطه‌ها (برای هر متغیر محمولاتی یک رابطه) است، به این شیوه که همه محمولات برآورده شوند. یک درخواست برای اطلاعات از پایگاه داده (یک پرسمان پایگاه داده) نیز یک محمول است.جایگزین‌ها.مدل‌های جایگزین دیگری مثل و نیز وجود دارند. بعضی از سامانه‌های استفاده‌شونده فعلی از این معماری‌های قدیمی استفاده می‌کنند، مثلاً در مراکز داده‌ای که نیازهای داده‌ای با حجم بالا دارند، یا موقعی که سامانه‌های موجود به اندازه‌ای پیچیده و انتزاعی هستند که برای تبدیل به سامانه‌های استفاده‌کننده از مدل رابطه‌ای از نظر هزینه ممنوعیت دارند. انواع قابل ذکر در این زمینه پایگاه داده‌های شیء گرا هستند.پیاده‌سازی.تلاش‌های زیادی برای ایجاد یک پیاده‌سازی صحیح از مدل پایگاه داده رابطه‌ای به همان صورتی که در ابتدا توسط کاد معرفی شد، و سپس توسط دیت و و دیگران توصیف شد، انجام شده‌است، اما تا کنون هیچ‌کدام موفقیت مردمی زیادی نیافته‌اند. تا تاریخ اکتبر ۲۰۱۵، یکی از تلاش‌های جدید برای انجام این کار بوده‌است.مدل رابطه‌ای اولین مدل پایگاه داده‌ای بود که به صورت اصطلاح‌های ریاضیاتی «صوری» توصیف شد. پایگاه داده‌های سلسله‌مراتبی و شبکه‌ای قبل از پایگاه داده رابطه‌ای وجود داشتند، اما مشخصات آن‌ها تقریباً غیرصوری بود. بعد از آنکه مدل رابطه‌ای تعریف شد، تلاش‌های زیادی برای مقایسه و تقابل مدل‌های مختلف انجام شد، و این موضوع منجر به ایجاد توصیف‌های دقیق‌تری از مدل‌های پیشین شد؛ اگر چه طبیعت رویه‌ای واسط‌های دستکاری داده برای پایگاه داده‌های سلسله‌مراتبی و شبکه‌ای، صوری‌سازی را محدودسازی می‌کند.تحلیل‌های پایگاه داده ساختاری از پروتکل‌های با جنبه رابطه‌ای و معمولاً از توالی داده دیفرانسیلی برای نگهداری تخصیص‌های معماری سلسله‌مراتبی با الحاق داده جدید استفاده می‌کنند. این سامانه‌ها از نظر کارکردی و از نظر مفهومی با دیگر الگوریتم‌های بازپخش جایگزین مشابه‌اند، که این موضوع بنیان زیرساخت پایگاه داده ابری را تشکیل می‌دهد.تعریف.به مجموعه‌ای از چند مقدار که یک گزاره نما را تبدیل به یک گزاره درست می‌کنند تاپل گفته می‌شود. برای مثال سیاره x به دور ستاره y می‌چرخد یک گزاره نماست (گزاره پارامتری) که تاپل {خورشید=yناهید=x} یک گزاره صحیح در آن به وجود می‌آورد.رابطه دو بخش دارد بدنه و عنوان. بدنه رابطه مجموعه‌ای متناهی از تاپل هاست. عنوان رابطه مجموعه‌ای از چند ویژگی است که هر ویژگی دارای یک نام و یک نوع است. برای مثال در رابطه فوق عنوان دارای دو ویژگی است اولی به نام ستاره و از نوع کاراکتر (یا از نوع ستاره‌های عالم) و دومی سیاره و از نوع کاراکتر (یا نوع سیاره‌های عالم) به تعداد تاپل‌های رابطه کاردینالیتی، به تعداد ویژگی‌های عنوان درجه رابطه گفته می‌شود. از آنجا که این مفاهیم بر اساس نظریه مجموعه‌ها تعریف شده‌اند عضو تکراری (تاپل تکراری در بدنه و نام ویژگی تکراری در عنوان) غیرممکن است و ترتیب آن‌ها هم هیچ اهمیتی ندارد.کلید.به تعدادی از ویژگی‌ها (زیر مجموعه‌ای از عنوان) که مقدار متناظر با آن در هر تاپل منحصر به فرد باشد کلید گفته می‌شود؛ مثلاً اگر در رابطه دانشجویان یک ویژگی به نام شماره دانشجویی وجود داشته باشد که مقدار آن برای هر دانشجو منحصر به فرد باشد آنگاه شماره دانشجویی کلید رابطه خواهد بود.کلید خارجی زیرمجموعه‌ای است از عنوان که مقدار تمامی تاپل‌ها در آن بایستی با مقادیر موجود در رابطه‌ای دیگر تناظر داشته باشد؛ مثلاً در لیست وام‌های گرفته شده توسط دانشجویان فیلد شماره دانشجویی یک کلید خارجی است که بایستی با شماره‌های دانشجویی موجود در لیست دانشجویان تناظر داشته باشد.تهی.برخی ویژگی‌های هر تاپل می‌توانند تهی باشند. تهی با کاراکتر بلانک یا رشته‌ای به طول صفر فرق دارد و نشان دهنده این است که این فیلد هم‌اکنون وجود ندارد یا اینکه مقدار فعلی آن برای ما نامعلوم است.جبر رابطه‌ای.از آنجا که رابطه خود یک مقدار است می‌توان بر روی آن عملگرهایی را تعریف نمود عملگرهای اصلی یک عملوندی رابطه‌ای عبارتند از: گزینش و پرتو و عملگرهای دو عملوندی عبارتند از اجتماع، اشتراک، تفاضل، ضرب، پیوند و تقسیم.قیدهای جامعیت.هر قانونی که سیستم مدیریت پایگاه داده‌ها به منظور حفظ سلامت داده‌ها بر کاربر تحمیل نماید قید جامعیت نامیده می‌شود. دو قید اصلی جامعیت به صورت سنتی وجود دارند:قید جامعیت وجودی: مقدار موجود در کلید اصلی برای هیچ‌یک از تاپل‌ها نمی‌تواند تهی باشد.قید جامعیت ارجاعی: مقدار موجود در کلید اصلی بایستی در رابطه مرجع وجود داشته باشد یا تهی باشد.نرمال سازی.یکی از اصول علم پایگاه داده‌ها از بین بردن افزونگی است. افزونگی به این معناست یک اطلاع خاص در چند محل مختلف پایگاه ذخیره شود. این امر موجب می‌شود که این خطر بالقوه به وجود آید که داده‌ها هر لحظه با هم در تضاد قرار گیرند و استخراج واقعیت از آن‌ها غیرممکن شود.نرمال سازی مجموعه قوانینی است که رعایت آن‌ها حذف افزونگی (یا در مواردی نادر به حداقل رساندن آن را) تضمین می‌کند. در تمامی طراحی‌ها نرمال سازی تا سطح نرمال BCNF بایستی رعایت شود.تعاریف ریاضی یا تعاریف ساده.برخی کتاب‌ها به جای تعاریف ریاضی مبتنی بر نظریه مجموعه‌ها و گزاره‌ها، تعریف‌های ساده‌تری را ارائه نموده‌اند؛ مثلاً: سطر به جای تاپل، تعداد سطرها به جای کاردینایتی، نام ستون به جای ویژگی، تعداد ستون‌ها به جای درجه و از همه مهم‌تر جدول به جای رابطه.این تعاریف در برخی موارد کارساز است و فهم مطلب را آسان‌تر می‌کند ولی موارد بسیاری هم هست که بر اساس تعریف جدولی و بردن فراگرفتن مفاهیم ریاضی غیرقابل انجام است. این کار بدان می‌ماند که برای آشنایی با یک کوه، به جای سفر به آن از تصویر همان کوه استفاده شود. برای شناسایی شکل کوه و راه‌های منتهی به قله تصویر بسیار کارسازتر از خود کوه است ولی اگر کسی که می‌پندارد کوه همین تصویر است بخواهد جنس سنگ‌ها را بشناسد ممکن است تکه‌ای کاغذ را به جای قطعات سنگ به آزمایشگاه بسپارد.ارائه مدل رابطه‌ای سنتی.مدل رابطه‌ای به همراه عملگرهای جبری و اصول رابطه‌ای در دهه هفتاد میلادی توسط ادگار کاد ارائه شدند. کاد به خاطر این کار جایزه تورینگ دریافت کرد که معادل جایزه نوبل در علم رایانه است.مدل‌های داده‌ای قبل از مدل رابطه‌ای در سطح پایینی از انتزاع قرار داشتند و وجود اشاره گرهایی که توسط طراح پایگاه سازماندهی می‌شدند کار طراحی را بسیار مشکل می‌کرد ولی با این وجود تنها راه دستیابی به کارایی مناسب حین پردازش انبوه داده‌ها بودند. مدل رابطه‌ای در ابتدا به دلیل بار پردازشی بالا مورد استقبال سازندگان DBMS قرار نگرفت ولی به تدریج و با قوی تر شدن کامپیوترها استقبال از آن بیشتر شد و امروزه تقریباً تمامی DBMSها بر اساس آن ساخته می‌شوند.گذار از مدل رابطه‌ای سنتی به مدرن.در مورد آینده دو دیدگاه وجود دارد. عده‌ای معتقدند دوران مدل رابطه‌ای بالاخره سر خواهد آمد و مدل‌های دیگر مانند مدل شی گرا جایگزین آن خواهند شد. در مقابل عمده پژوهشگران معتقدند مدل رابطه‌ای بر گزاره‌ها استوار است و همان‌طور که منطق گزاره‌ای از چند هزار سال قبل تا امروز دوام آورده‌است مدل رابطه‌ای نیز برای همیشه مدل پایگاه داده‌ها باقی خواهد ماند.در راس این گروه سی‌جی دیت و هیو دارون قرار دارند که ضمن اعتقاد به اصول مدل رابطه‌ای فکر می‌کنند این مدل بایستی در طول زمان اصلاح شود. سی‌جی دیت همکار و دوست ادگار کاد سعی دارد پس از مرگ وی راهش را ادامه دهد. این دو نفر در کتابی تحت عنوان بیانیه (مانیفست) سوم آخرین دیدگاه‌های خود را برای اصلاح این مدل بیان کرده‌اند که عمده‌ترین آن‌ها عبارت است از:تهی غیرمجاز است.تهی یکی از پایه‌های مدل رابطه‌ای بود که توسط کاد ارائه شد. با این وجود دلایلی وجود دارد که مبتنی بر آن‌ها اجازه خالی ماندن فیلدها به‌طور کلی باید لغو شود. در پی حذف تهی قیدهای جامعیت دچار تحول جدی خواهند شد.مرابطه در کنار رابطه.رابطه یک مقدار ثابت است که عنوان و بدنه آن مشخص هستند (مانند عدد ۴). در مقابل مرابطه (متغیر رابطه‌ای) دارای عنوانی ثابت و بدنه‌ای است که هر لحظه تغییر می‌کند (مانند متغیر x که یک لحظه ۴ و لحظه‌ای دیگر ۱۱ را در خود دارد). در تعریف کاد هر دو این مفاهیم رابطه نامیده شده بودند.کنترل قیود، بعد از هر دستور.کنترل قیود هم‌اکنون بعد از تراکنش صورت می‌گیرد. به بیان دیگر دستورات داخلی تراکنش‌ها می‌توانند قیود را زیر پا بگذارند. این امر رد شده‌است.