آموزش جبر رابطه ای در پایگاه داده – به زبان ساده + مثال

۶۰۸۰ بازدید
آخرین به‌روزرسانی: ۲۴ اردیبهشت ۱۴۰۲
زمان مطالعه: ۱۰ دقیقه
آموزش جبر رابطه ای در پایگاه داده – به زبان ساده + مثال

جبر رابطه ای در پایگاه داده یا دیتابیس که به انگلیسی آن را «Relational Algebra» خطاب می‌کنند، زبان «پُرسمان» (کوئری) بسیار پراستفاده‌ای به حساب می‌آید. در این زبان، وهله‌هایی از رابطه‌ها به عنوان ورودی جمع‌آوری و رخدادهایی از رابطه‌ها به عنوان خروجی ارائه می‌شوند. در جبر رابطه ای در پایگاه داده یا بانک اطلاعاتی از عملیات مختلفی برای انجام این اعمال استفاده می‌شود. عملیات پرسمان جبر رابطه ای SQL روی یک رابطه به صورت بازگشتی اجرا می‌شوند. خروجی این رابطه‌ها، رابطه ای جدید به حساب می‌آید که ممکن است از یک یا بیش از یک رابطه ورودی شکل گرفته باشد. در ادامه این مطلب، بیشتر به آموزش جبر رابطه ای در پایگاه داده پرداخته شده است.

فهرست مطالب این نوشته

جبر رابطه ای در سیستم مدیریت پایگاه داده چیست ؟

جبر رابطه ای در پایگاه داده و همچنین در «سیستم مدیریت پایگاه داده» (DBMS) به زبان پرسمان رویه‌ای اشاره دارد که وهله‌های رابطه‌ای را به عنوان ورودی می‌گیرد و وهله‌های رابطه‌ای جدیدی را به عنوان خروجی باز می‌گرداند. در واقع رابطه‌ای به عنوان ورودی دریافت و رابطه دیگری به عنوان خروجی تولید می‌شود.

جبر رابطه ای پرسمان‌هایی را با کمک عملگرها اجرا می‌کند. در این مقوله می‌توان از عملگر باینری یا «یکین» (Unary) استفاده کرد. آن‌ها رابطه‌ها را به عنوان ورودی دریافت می‌کنند و رابطه‌هایی را به عنوان خروجی تولید خواهند کرد. پایه و اساس نظری پایگاه داده‌های رابطه ای و SQL به وسیله جبر خطی فراهم شده است.

جبر رابطه ای در پایگاه داده چیست

عملیات اساسی جبر رابطه ای SQL

عملیات جبر رابطه ای در بانک اطلاعاتی یا همان پایگاه داده به گروه‌های مختلفی تقسیم می‌شود که هر یک در ادامه فهرست شده‌اند و عملیات قابل انجام در هر گروه نیز به عنوان زیرشاخه آمده است.

  • عملیات یکانی رابطه ای
    • SELECT: انتخاب (نماد: σ)
    • PROJECT: انعکاس (نماد: π)
    • RENAME: تغییر نام (نماد: ρ)
  • عملیات جبر رابطه ای از نظریه مجموعه‌ها
    • UNION: اتحاد (نماد: υ)
    • INTERSECTION: تقاطع (بدون نماد)
    • DIFFERENCE: اختلاف (نماد: -)
    • CARTESIAN PRODUCT: ضرب کارتزین (نماد: x)
  • عملیات رابطه ای باینری (دودویی)
    • JOIN: الحاق
    • DIVISION: تقسیم
عملیات جبر رابطه ای در پایگاه داده
برخی از عملیات جبر رابطه‌ای در پایگاه داده

حال در ادامه هر یک از عملیات اساسی فهرست شده در بالا در زیربخش‌هایی جداگانه آموزش داده شده‌اند و مثال‌هایی هم برای هر یک ارائه می‌شود.

دستور SELECT در جبر رابطه ای پایگاه داده چیست ؟

عملیات SELECT در جبر رابطه ای پایگاه داده برای انتخاب زیرمجموعه‌ای از تاپل‌ها (همان سطرها یا رکوردهای جدول) مطابق با شرایط انتخابِ مربوطه مورد استفاده قرار می‌گیرد.

برای نشان دادن عملیات انتخاب یا همان SELECT در جبر رابطه ای پایگاه داده از نماد «سیگما» (σ) استفاده می‌شود. نماد سیگما به عنوان گزاره‌ای برای انتخاب تاپل‌هایی به کار می‌رود که شرط انتخاب را برآورده می‌کنند. عملگر SELECT تاپل‌هایی را انتخاب خواهد کرد که گزاره معینی را برآورده کرده باشند.

1σp(r)

در عبارت بالا:

  • σ   همان گزاره یا مسند نامیده می‌شود.
  • r‌   از حرف اول کلمه «Relation» (رابطه) برگرفته شده و همان نام جدول است.
  • p   نیز منطق گزاره‌ای به حساب می‌آید.
عملیات انتخاب در جبر رابطه ای

مثال اول برای عملیات انتخاب در جبر رابطه ای

به عنوان مثال می‌توان دستوری را با جبر رابطه ای در پایگاه داده نوشت که طی آن تاپل‌های خاصی از یک جدول در دیتابیس بر اساس شرطی معین انتخاب شوند.

1σ topic = "Database" (Tutorials)

در دستور بالا، تاپل‌هایی از جدول «Tutorials» انتخاب خواهند شد که در آن‌ها «topic» برابر با «Database» است.

مثال دوم برای عملیات SELECT در جبر رابطه ای

در مثال دوم با نماد سیکما و عملیات انتخاب، تاپل‌هایی گلچین می‌شوند که با ۲ شرط مطابقت داشته باشند.

1σ topic = "Database" and author = "faradars"( Tutorials)

خروجی در مثال بالا تاپل‌هایی از جدول Tutorials خواهد بود که در آن‌ها مقدار topic برابر با Database و مقدار «author» برابر با «faradars» است.

مثال سوم برای عملیات سیکما σ در جبر رابطه ای

سومین مثال برای عملیات سیکما σ در جبر رابطه ای در ادامه آمده است.

1σ sales > 50000 (Customers)

در خروجی خط کد بالا، تاپل‌هایی از Customers انتخاب می‌شوند که در آن‌ها sales بزرگ‌تر از ۵۰ هزار است.

عملیات انعکاس Projection در جبر رابطه ای پایگاه داده

در طی عملیات «Projection» (انعکاس)، تمام صفت‌های رابطه ورودی به غیر از آن‌هایی حذف خواهند شد که در «فهرست انعکاس» (Projection List) ذکر شده‌اند. متُد Projection، رابطه ای را تعریف می‌کند که حاوی زیرمجموعه‌ای عمودی از رابطه است.

این به استخراج مقادیر صفت‌های تعیین شده برای حذف مقادیر تکراری کمک می‌کند. برای انتخاب صفت‌ها از یک رابطه، علامت پی «π» مورد استفاده قرار می‌گیرد. این عملگر کمک می‌کند ستون‌های خاصی را از یک رابطه نگه داریم و سایر ستون‌ها را دور می‌ریزد. حال در ادامه به منظور درک بهتر عملگر π، مثالی برای آن ارائه شده است.

عملیات انعکاس Projection در جبر رابطه ای

مثال عملیات انعکاس Projection در جبر رابطه ای

برای این مثال، لازم است جدول زیر را در نظر بگیریم.

StatusCustomerNameCustomerID
ActiveGoogle1
ActiveAmazon2
InactiveApple3
ActiveAlibaba4

در جدول بالا، انعکاس ستون «CustomerName» و «Status» به صورت کدهای زیر انجام می‌شود.

1Π CustomerName, Status (Customers)

خروجی خطِ کد بالا جدول زیر است.

StatusCustomerName
ActiveGoogle
ActiveAmazon
InactiveApple
ActiveAlibaba

دستور تغییر نام Rename در جبر رابطه ای پایگاه داده

دستور Rename عملیاتی یکین است و برای تغییر نام صفت‌های یک رابطه مورد استفاده قرار می‌گیرد. برای مثال، گزاره ρ (a/b)R  نام صفت b  از رابطه R  را به a  تغییر می‌دهد.

عملیات اجتماع Union در جبر رابطه ای پایگاه داده چگونه است؟

اجتماع به وسیله نماد υ نشان داده می‌شود. این عملیات شامل تمام تاپل‌هایی است که در جدول‌های A یا در B قرار دارند. همچنین در طی عملیات اجتماع، تاپل‌های تکراری هم حذف می‌شوند. بنابراین، اجتماع مجموعه A با مجموعه B (یا همان set A UNION set B) به صورت زیر ابراز می‌شود:

نتیجه <- A ∪ B

برای اینکه عملیات اجتماع معتبر محسوب شود، شرط‌های زیر باید برقرار باشند:

  • R و S باید تعداد صفت‌هایی یکسان باشند.
  • دامنه صفت باید سازگاری داشته باشد.
  • تاپل‌های تکراری باید به صورت خودکار حذف شوند.
عملیات اجتماع Union در جبر رابطه ای پایگاه داده

برای یادگیری بهتر در ادامه مثالی از نحوه انجام عملیات اجتماع در جبر رابطه ای پایگاه داده ارائه شده است.

مثال عملیات اجتماع Union در جبر رابطه ای

برای ارائه این مثال، لازم است جدول‌های زیر را در نظر بگیریم.

Table BTable A
column 2column 1column 2column 1
1111
3121

حالا اجتماع A و B یعنی A ∪ B به صورت جدول زیر خواهد بود.

Table A ∪ B
column 2column 1
11
21
31

عملیات اختلاف مجموعه Set Difference

علامت تفریق (-) نشان دهنده عملیات «Set Difference» (اختلاف مجموعه) در جبر رابطه ای پایگاه داده است. حاصل عمل A – B، رابطه ای است که تمام تاپل‌های موجود در A به غیر از آن‌هایی را شامل می‌شود که در B نیستند.

برای معتبر بودن عملیات اختلاف یا تفریق، شرط‌های زیر باید برقرار باشند.

  • نام صفت A باید با نام صفت در B مطابقت داشته باشد.
  • رابطه‌های ۲ عملوندی A و B یا باید سازگار باشند یا در اجتماع سازگاری داشته باشند.
  • عملیات اختلاف باید رابطه تعریف شده‌ای باشد و این رابطه حاوی تاپل‌هایی باشد که در رابطه A وجود دارند، اما در B نیستند.
عملیات difference

در ادامه مثالی برای درک بهتر آمده است.

مثال عملیات اختلاف در جبر رابطه ای پایگاه داده

برای این مثال از همان ۲ جدول A و B در مثال قبلی استفاده شده است. به منظور انجام عملیات بدست آوردن اختلاف دو جدول A و B، به سادگی از دستور زیر استفاده می‌شود.

1A-B

جدول حاصل شده از این عملیات در ادامه آمده است.

Table A – B
column 2column 1
21

عملیات اشتراک Intersection در جبر رابطه ای پایگاه داده

عملیات «اشتراک» (Intersection) به وسیله علامت ∩ تعریف می‌شود.

برای مثال، اشتراک A و B را به صورت زیر نشان می‌دهیم.

A ∩ B

عملیات اشتراک، رابطه ای را تعریف می‌کند که حاوی مجموعه‌ای از تمام تاپل‌های موجود هم در A و هم در B است. یعنی حاصل این عملیات تاپل‌هایی خواهند بود که در هر دو رابطه یا جدول مشترک هستند . البته شرط اجرای صحیح این عملیات این است که A و B باید با عملیات اجتماع سازگاری داشته و به اصطلاح «Union-Compatible» باشند.

اشتراک در جبر رابطه ای در پایگاه داده
شرح بصری اشتراک در جبر رابطه ای پایگاه داده

مثال عملیات اشتراک در جبر رابطه ای پایگاه داده

برای انجام عملیات اشتراک روی دو جدول A و B که در دو مثال قبل از این تعریف شده‌اند، به سادگی از دستور زیر استفاده می‌شود.

1A ∩ B

خروجی مثال بالا به صورت زیر است.

Table A ∩ B
column 1column 2
11

ضرب کارتزین Cartesian Product در جبر رابطه ای DBMS

«ضرب کارتزین» (Cartesian Product) در DBMS عملیاتی است که برای ادغام ستون‌ها از ۲ رابطه استفاده می‌شود.

به طور کلی، ضرب کارتزین وقتی به تنهایی اجرا می‌شود، هیچ‌گاه عملیاتی با معنی محسوب نخواهد شد.

 

اگرچه، وقتی عملیات دیگری به دنبال آن می‌آید، ضرب کارتزین معنی پیدا می‌کند. به این عملیات همچنین «ضرب داخلی» (Cross Product) و «الحاق داخلی» (Cross Join) هم می‌گویند. ضرب کارتزین را با علامت «X» نشان می‌دهند.

 

در ادامه مثالی به منظور درک بهتر ضرب کارتزین در جبر رابطه ای پایگاه داده ارائه شده است.

مثال ضرب کارتزین جبر رابطه ای در دیتابیس

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

1σ column 2 =1(A X B)

دستور بالا تمام سطرهایی را از رابطه A و B را نشان خواهد داد که ستون دوم آن‌ها دارای مقدار یک است. جدول حاصل شده از دستور بالا به صورت زیر خواهد بود.

σ column 2 = ‘1’ (A X B)
column 2column 1
11
11

عملیات الحاق Join

عملیات الحاق در جبر رابطه ای پایگاه داده اساساً ضرب کارتزین است که به دنبال آن، معیار انتخاب می‌آید. این عملیات یعنی الحاق با علامت «» نشان داده می‌شود.

همچنین، عملیات الحاق امکان الحاق تاپل‌های به طرق گوناگون تاپل‌های مرتبط را از رابطه‌های مختلف فراهم می‌کند. در ادامه به انواع عملیات الحاق در جبر رابطه ای پایگاه داده پرداخته شده است.

انواع JOIN در جبر رابطه ای پایگاه داده

انواع گونه‌های مختلف عملیات الحاق در ادامه فهرست شده است.

  • «الحاق داخلی» (Inner Join):
    • «الحاق تتا» (Theta Join)
    • «الحاق EQUI»
    • «الحاق طبیعی» (Natural Join)
  • «الحاق خارجی» (Outer Join):
    • «الحاق چپ خارجی» (Left Outer Join)
    • «الحاق راست خارجی» (Right Outer Join)
    • «الحاق خارجی کامل» (Full Outer Join)

در ادامه هر یک از انواع الحاق در جبر رابطه ای پایگاه داده به طور جداگانه در زیربخش‌هایی آموزش داده شده‌اند.

 

الحاق داخلی Inner Join در جبر رابطه ای پایگاه داده چیست؟

در یک الحاق داخلی، تنها تاپل‌هایی لحاظ خواهند شد که معیار مطابقت را برآورده کنند و بقیه موارد حذف خواهند شد. در ادامه هر یک از انواع مختلف الحاق داخلی شرح و آموزش داده شده‌اند.

الحاق تتا Theta Join

حالت کلی عملیات JOIN را «الحاق تتا» (Theta Join) می‌نامند. این عملیات را به وسیله علامت تتا «θ» نشان می‌دهند. برای درک بهتر در ادامه مثالی آمده است.

1A ⋈θ B

در الحاق تتا می‌توان از هر شرطی در معیار انتخاب استفاده کرد. برای مثال می‌توان عملیات الحاق را به صورت زیر انجام داد.

1A ⋈ A.column 2 >  B.column 2 (B)

خروجی دستور بالا در ادامه آمده است.

A ⋈ A.column 2 > B.column 2 (B)
column 2column 1
21

عملیات الحاق EQUI در جبر رابطه ای پایگاه داده

وقتی که الحاق تتا تنها از شرط هم ارزی استفاده کند، تبدیل به الحاق EQUI خواهد شد. مثلاً در دستور زیر از این نوع شرط استفاده شده و بنابراین الحاق EQUI رخ داده است.

1A ⋈ A.column 2 =  B.column 2 (B)

خروجی دستور بالا به صورت جدول زیر خواهد بود.

A ⋈ A.column 2 = B.column 2 (B)
column 2column 1
11

الحاق EQUI سخت‌ترین عملیات برای پیاده‌سازی به‌طور بهینه با استفاده از SQL در یک پایگاه داده رابطه ای به حساب می‌آید و یکی از دلایل مشکلات عملکردی اساسی در RDBMS به شمار می‌رود.

الحاق طبیعی NATURAL JOIN در جبر خطی پایگاه داده رابطه ای

الحاق طبیعی تنها در صورتی قابل اجرا است که صفتی مشترک یا همان ستونی مشترک بین رابطه‌ها وجود داشته باشد. نام و نوع این صفت مشترک باید یکسان باشد. به عنوان نمونه در ادامه مثالی ارائه شده است. برای مثال دو جدول زیر را در نظر می‌گیریم.

C
SquareNum
42
93
D
CubeNum
82
273

الحاق طبیعی دو جدول بالا به صورت زیر انجام می‌شود.

1C ⋈ D

حاصل دستور بالا، جدول زیر است.

C ⋈ D
CubeSquareNum
842
2793

عملیات الحاق خارجی در جبر پایگاه داده رابطه ای

در الحاق خارجی، همراه با تاپل‌هایی که معیار مطابقت را برآورده می‌کنند، همچنین برخی یا تمام تاپل‌هایی را لحاظ خواهیم کرد که با معیار مربوطه مطابقت ندارند.

در ادامه این بخش به آموزش انواه الحاق خارجی پرداخته شده است.

الحاق خارجی چپ Left Outer Join

در الحاق بیرونی چپ، عملیات نگهداری تمام تاپل‌ها را در رابطه سمت چپ مجاز می‌شمارد. اگرچه، اگر هیچ تاپل مطابقی در رابطه سمت راست پیدا نشود، آنگاه صفت‌های رابطه سمت راست در نتیجه الحاق با مقادیر پوچ یا همان Null پُر خواهند شد.

الحاق خارجی چپ

برای مثال ۲ جدول زیر را در نظر می‌گیریم.

A
SquareNum
42
93
164
B
CubeNum
82
183
755

برای الحاق خارجی سمت چپ از نماد زیر استفاده می‌شود.

برای مثال، دو جدول بالا با دستور زیر الحاق خارجی سمت چپ می‌شوند.

الحاق خارجی چپ در جبر رابطه ای

حاصل دستور بالا به صورت زیر خواهد بود.

A ⋈ B
CubeSquareNum
842
1893
-164

الحاق خارجی راست Right Outer Join در جبر خطی در پایگاه داده چگونه است؟

در عملیات الحاق خارجی راست، نگهداری از تمام تاپل‌ها در رابطه سمت راست مجاز است. اگرچه، در صورتی که هیچ تاپل مطابقی در رابطه سمت چپ پیدا نشود، آنگاه صفت‌های رابطه سمت چپ در نتیجه الحاق، با مقادیر Null پُر خواهند شد.

علامت الحاق خارجی راست را هم با نماد زیر نشان می‌دهند.

الحاق خارجی سمت چپ

در تصویر زیر سعی شده است این نوع الحاق به صورت بصری شرح داده شود تا درک بهتری نسبت به آن حاصل شود.

عملیات الحاق خارجی از راست در جبر رابطه ای در پایگاه داده

عملیات الحاق خارجی راست برای دو رابطه A و B که در مثال قبل جدول‌های آن‌ها آمده، به صورت دستور زیر انجام می‌شود.

الحاق خارجی راست

خروجی دستور بالا به صورت جدول زیر است.

A ⋈ B
SquareCubeNum
482
9183
-755

الحاق خارجی کامل در جبر رابطه ای پایگاه داده

در یک الحاق خارجی کامل، تمام تاپل‌ها صرف نظر از شرط مطابقت، از هر دو رابطه در نتیجه لحاظ می‌شوند. این نوع الحاق با علامت یا نماد زیر نشان داده می‌شود.

الحاق خارجی کامل

برای الحاق کامل دو جدول A و B که در دو مثال قبلی تعریف شده‌اند از دستور زیر استفاده می‌شود.

الحاق خارجی کامل یا full outer join در جبر رابطه ای در پایگاه داده

خروجی دستور بالا در ادامه آمده است.

A ⋈ B
SquareCubeNum
842
1893
-164
75-5

به این ترتیب این مطلب در اینجا به پایان می‌رسد، در انتها به ارائه جمع‌بندی از این نوشتار پرداخته شده است.

 

جمع‌بندی

بنابراین به بیان ساده می‌توان گفت که انجام عملیات مختلف روی جدول‌های دیتابیس را جبر رابطه ای در پایگاه داده می‌نامند. جدول‌ها در پایگاه داده همان رابطه‌ها هستند و به همین دلیل است که به این نوع محاسبات و عملیات جبر رابطه ای می‌گویند. در این مطلب عملیات مختلف جبر رابطه ای در دیتابیس آموزش داده شدند و برای اکثر این عملیات نیز مثال‌های مختلفی به منظور درک بهتر مفاهیم ارائه شدند.

بر اساس رای ۱۴ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GURU99BYJU'S
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *