جبر رابطه ای در پایگاه داده یا دیتابیس که به انگلیسی آن را «Relational Algebra» خطاب میکنند، زبان «پُرسمان» (کوئری) بسیار پراستفادهای به حساب میآید. در این زبان، وهلههایی از رابطهها به عنوان ورودی جمعآوری و رخدادهایی از رابطهها به عنوان خروجی ارائه میشوند. در جبر رابطه ای در پایگاه داده یا بانک اطلاعاتی از عملیات مختلفی برای انجام این اعمال استفاده میشود. عملیات پرسمان جبر رابطه ای SQL روی یک رابطه به صورت بازگشتی اجرا میشوند. خروجی این رابطهها، رابطه ای جدید به حساب میآید که ممکن است از یک یا بیش از یک رابطه ورودی شکل گرفته باشد. در ادامه این مطلب، بیشتر به آموزش جبر رابطه ای در پایگاه داده پرداخته شده است.
جبر رابطه ای در سیستم مدیریت پایگاه داده چیست ؟
جبر رابطه ای در پایگاه داده و همچنین در «سیستم مدیریت پایگاه داده» (DBMS) به زبان پرسمان رویهای اشاره دارد که وهلههای رابطهای را به عنوان ورودی میگیرد و وهلههای رابطهای جدیدی را به عنوان خروجی باز میگرداند. در واقع رابطهای به عنوان ورودی دریافت و رابطه دیگری به عنوان خروجی تولید میشود.
جبر رابطه ای پرسمانهایی را با کمک عملگرها اجرا میکند. در این مقوله میتوان از عملگر باینری یا «یکین» (Unary) استفاده کرد. آنها رابطهها را به عنوان ورودی دریافت میکنند و رابطههایی را به عنوان خروجی تولید خواهند کرد. پایه و اساس نظری پایگاه دادههای رابطه ای و SQL به وسیله جبر خطی فراهم شده است.
عملیات اساسی جبر رابطه ای SQL
عملیات جبر رابطه ای در بانک اطلاعاتی یا همان پایگاه داده به گروههای مختلفی تقسیم میشود که هر یک در ادامه فهرست شدهاند و عملیات قابل انجام در هر گروه نیز به عنوان زیرشاخه آمده است.
- عملیات یکانی رابطه ای
- SELECT: انتخاب (نماد: σ)
- PROJECT: انعکاس (نماد: π)
- RENAME: تغییر نام (نماد: ρ)
- عملیات جبر رابطه ای از نظریه مجموعهها
- UNION: اتحاد (نماد: υ)
- INTERSECTION: تقاطع (بدون نماد)
- DIFFERENCE: اختلاف (نماد: -)
- CARTESIAN PRODUCT: ضرب کارتزین (نماد: x)
- عملیات رابطه ای باینری (دودویی)
- JOIN: الحاق
- DIVISION: تقسیم
حال در ادامه هر یک از عملیات اساسی فهرست شده در بالا در زیربخشهایی جداگانه آموزش داده شدهاند و مثالهایی هم برای هر یک ارائه میشود.
دستور SELECT در جبر رابطه ای پایگاه داده چیست ؟
عملیات SELECT در جبر رابطه ای پایگاه داده برای انتخاب زیرمجموعهای از تاپلها (همان سطرها یا رکوردهای جدول) مطابق با شرایط انتخابِ مربوطه مورد استفاده قرار میگیرد.
برای نشان دادن عملیات انتخاب یا همان SELECT در جبر رابطه ای پایگاه داده از نماد «سیگما» (σ) استفاده میشود. نماد سیگما به عنوان گزارهای برای انتخاب تاپلهایی به کار میرود که شرط انتخاب را برآورده میکنند. عملگر SELECT تاپلهایی را انتخاب خواهد کرد که گزاره معینی را برآورده کرده باشند.
σp(r)
در عبارت بالا:
- σ
همان گزاره یا مسند نامیده میشود.
- r
از حرف اول کلمه «Relation» (رابطه) برگرفته شده و همان نام جدول است.
- p
نیز منطق گزارهای به حساب میآید.
مثال اول برای عملیات انتخاب در جبر رابطه ای
به عنوان مثال میتوان دستوری را با جبر رابطه ای در پایگاه داده نوشت که طی آن تاپلهای خاصی از یک جدول در دیتابیس بر اساس شرطی معین انتخاب شوند.
σ topic = "Database" (Tutorials)
در دستور بالا، تاپلهایی از جدول «Tutorials» انتخاب خواهند شد که در آنها «topic» برابر با «Database» است.
مثال دوم برای عملیات SELECT در جبر رابطه ای
در مثال دوم با نماد سیکما و عملیات انتخاب، تاپلهایی گلچین میشوند که با ۲ شرط مطابقت داشته باشند.
σ topic = "Database" and author = "faradars"( Tutorials)
خروجی در مثال بالا تاپلهایی از جدول Tutorials خواهد بود که در آنها مقدار topic برابر با Database و مقدار «author» برابر با «faradars» است.
مثال سوم برای عملیات سیکما σ در جبر رابطه ای
سومین مثال برای عملیات سیکما σ در جبر رابطه ای در ادامه آمده است.
σ sales > 50000 (Customers)
در خروجی خط کد بالا، تاپلهایی از Customers انتخاب میشوند که در آنها sales بزرگتر از ۵۰ هزار است.
عملیات انعکاس Projection در جبر رابطه ای پایگاه داده
در طی عملیات «Projection» (انعکاس)، تمام صفتهای رابطه ورودی به غیر از آنهایی حذف خواهند شد که در «فهرست انعکاس» (Projection List) ذکر شدهاند. متُد Projection، رابطه ای را تعریف میکند که حاوی زیرمجموعهای عمودی از رابطه است.
این به استخراج مقادیر صفتهای تعیین شده برای حذف مقادیر تکراری کمک میکند. برای انتخاب صفتها از یک رابطه، علامت پی «π» مورد استفاده قرار میگیرد. این عملگر کمک میکند ستونهای خاصی را از یک رابطه نگه داریم و سایر ستونها را دور میریزد. حال در ادامه به منظور درک بهتر عملگر π، مثالی برای آن ارائه شده است.
مثال عملیات انعکاس Projection در جبر رابطه ای
برای این مثال، لازم است جدول زیر را در نظر بگیریم.
Status | CustomerName | CustomerID |
Active | 1 | |
Active | Amazon | 2 |
Inactive | Apple | 3 |
Active | Alibaba | 4 |
در جدول بالا، انعکاس ستون «CustomerName» و «Status» به صورت کدهای زیر انجام میشود.
Π CustomerName, Status (Customers)
خروجی خطِ کد بالا جدول زیر است.
Status | CustomerName |
Active | |
Active | Amazon |
Inactive | Apple |
Active | Alibaba |
دستور تغییر نام Rename در جبر رابطه ای پایگاه داده
دستور Rename عملیاتی یکین است و برای تغییر نام صفتهای یک رابطه مورد استفاده قرار میگیرد. برای مثال، گزاره ρ (a/b)R
نام صفت b
از رابطه R
را به a
تغییر میدهد.
عملیات اجتماع Union در جبر رابطه ای پایگاه داده چگونه است؟
اجتماع به وسیله نماد υ نشان داده میشود. این عملیات شامل تمام تاپلهایی است که در جدولهای A یا در B قرار دارند. همچنین در طی عملیات اجتماع، تاپلهای تکراری هم حذف میشوند. بنابراین، اجتماع مجموعه A با مجموعه B (یا همان set A UNION set B) به صورت زیر ابراز میشود:
نتیجه
برای اینکه عملیات اجتماع معتبر محسوب شود، شرطهای زیر باید برقرار باشند:
- R و S باید تعداد صفتهایی یکسان باشند.
- دامنه صفت باید سازگاری داشته باشد.
- تاپلهای تکراری باید به صورت خودکار حذف شوند.
برای یادگیری بهتر در ادامه مثالی از نحوه انجام عملیات اجتماع در جبر رابطه ای پایگاه داده ارائه شده است.
مثال عملیات اجتماع Union در جبر رابطه ای
برای ارائه این مثال، لازم است جدولهای زیر را در نظر بگیریم.
Table B | Table A | ||
column 2 | column 1 | column 2 | column 1 |
1 | 1 | 1 | 1 |
3 | 1 | 2 | 1 |
حالا اجتماع A و B یعنی A ∪ B به صورت جدول زیر خواهد بود.
Table A ∪ B | |
column 2 | column 1 |
1 | 1 |
2 | 1 |
3 | 1 |
عملیات اختلاف مجموعه Set Difference
علامت تفریق (-) نشان دهنده عملیات «Set Difference» (اختلاف مجموعه) در جبر رابطه ای پایگاه داده است. حاصل عمل A – B، رابطه ای است که تمام تاپلهای موجود در A به غیر از آنهایی را شامل میشود که در B نیستند.
برای معتبر بودن عملیات اختلاف یا تفریق، شرطهای زیر باید برقرار باشند.
- نام صفت A باید با نام صفت در B مطابقت داشته باشد.
- رابطههای ۲ عملوندی A و B یا باید سازگار باشند یا در اجتماع سازگاری داشته باشند.
- عملیات اختلاف باید رابطه تعریف شدهای باشد و این رابطه حاوی تاپلهایی باشد که در رابطه A وجود دارند، اما در B نیستند.
در ادامه مثالی برای درک بهتر آمده است.
مثال عملیات اختلاف در جبر رابطه ای پایگاه داده
برای این مثال از همان ۲ جدول A و B در مثال قبلی استفاده شده است. به منظور انجام عملیات بدست آوردن اختلاف دو جدول A و B، به سادگی از دستور زیر استفاده میشود.
A-B
جدول حاصل شده از این عملیات در ادامه آمده است.
Table A – B | |
column 2 | column 1 |
---|---|
2 | 1 |
عملیات اشتراک Intersection در جبر رابطه ای پایگاه داده
عملیات «اشتراک» (Intersection) به وسیله علامت ∩ تعریف میشود.
برای مثال، اشتراک A و B را به صورت زیر نشان میدهیم.
A ∩ B
عملیات اشتراک، رابطه ای را تعریف میکند که حاوی مجموعهای از تمام تاپلهای موجود هم در A و هم در B است. یعنی حاصل این عملیات تاپلهایی خواهند بود که در هر دو رابطه یا جدول مشترک هستند . البته شرط اجرای صحیح این عملیات این است که A و B باید با عملیات اجتماع سازگاری داشته و به اصطلاح «Union-Compatible» باشند.
مثال عملیات اشتراک در جبر رابطه ای پایگاه داده
برای انجام عملیات اشتراک روی دو جدول A و B که در دو مثال قبل از این تعریف شدهاند، به سادگی از دستور زیر استفاده میشود.
A ∩ B
خروجی مثال بالا به صورت زیر است.
Table A ∩ B | |
column 1 | column 2 |
1 | 1 |
ضرب کارتزین Cartesian Product در جبر رابطه ای DBMS
«ضرب کارتزین» (Cartesian Product) در DBMS عملیاتی است که برای ادغام ستونها از ۲ رابطه استفاده میشود.
به طور کلی، ضرب کارتزین وقتی به تنهایی اجرا میشود، هیچگاه عملیاتی با معنی محسوب نخواهد شد.
دستگاه مختصات دکارتی — به زبان ساده
اگرچه، وقتی عملیات دیگری به دنبال آن میآید، ضرب کارتزین معنی پیدا میکند. به این عملیات همچنین «ضرب داخلی» (Cross Product) و «الحاق داخلی» (Cross Join) هم میگویند. ضرب کارتزین را با علامت «X» نشان میدهند.
مفاهیم و کاربردهای ضرب داخلی — به زبان ساده
در ادامه مثالی به منظور درک بهتر ضرب کارتزین در جبر رابطه ای پایگاه داده ارائه شده است.
مثال ضرب کارتزین جبر رابطه ای در دیتابیس
دستور نمونهای که برای عملیات ضرب کارتزین جبر رابطه ای در بانک اطلاعاتی میتوان استفاده کرد، مشابه دستور زیر خواهد بود.
σ column 2 = ‘1’ (A X B)
دستور بالا تمام سطرهایی را از رابطه A و B را نشان خواهد داد که ستون دوم آنها دارای مقدار یک است. جدول حاصل شده از دستور بالا به صورت زیر خواهد بود.
σ column 2 = ‘1’ (A X B) | |
column 2 | column 1 |
1 | 1 |
1 | 1 |
عملیات الحاق Join
عملیات الحاق در جبر رابطه ای پایگاه داده اساساً ضرب کارتزین است که به دنبال آن، معیار انتخاب میآید. این عملیات یعنی الحاق با علامت «⋈» نشان داده میشود.
همچنین، عملیات الحاق امکان الحاق تاپلهای به طرق گوناگون تاپلهای مرتبط را از رابطههای مختلف فراهم میکند. در ادامه به انواع عملیات الحاق در جبر رابطه ای پایگاه داده پرداخته شده است.
انواع JOIN در جبر رابطه ای پایگاه داده
انواع گونههای مختلف عملیات الحاق در ادامه فهرست شده است.
- «الحاق داخلی» (Inner Join):
- «الحاق تتا» (Theta Join)
- «الحاق EQUI»
- «الحاق طبیعی» (Natural Join)
- «الحاق خارجی» (Outer Join):
- «الحاق چپ خارجی» (Left Outer Join)
- «الحاق راست خارجی» (Right Outer Join)
- «الحاق خارجی کامل» (Full Outer Join)
در ادامه هر یک از انواع الحاق در جبر رابطه ای پایگاه داده به طور جداگانه در زیربخشهایی آموزش داده شدهاند.
دستور Join و انواع آن در SQL — راهنمای جامع
الحاق داخلی Inner Join در جبر رابطه ای پایگاه داده چیست؟
در یک الحاق داخلی، تنها تاپلهایی لحاظ خواهند شد که معیار مطابقت را برآورده کنند و بقیه موارد حذف خواهند شد. در ادامه هر یک از انواع مختلف الحاق داخلی شرح و آموزش داده شدهاند.
الحاق تتا Theta Join
حالت کلی عملیات JOIN را «الحاق تتا» (Theta Join) مینامند. این عملیات را به وسیله علامت تتا «θ» نشان میدهند. برای درک بهتر در ادامه مثالی آمده است.
A ⋈θ B
در الحاق تتا میتوان از هر شرطی در معیار انتخاب استفاده کرد. برای مثال میتوان عملیات الحاق را به صورت زیر انجام داد.
A ⋈ A.column 2 > B.column 2 (B)
خروجی دستور بالا در ادامه آمده است.
A ⋈ A.column 2 > B.column 2 (B) | |
column 2 | column 1 |
2 | 1 |
عملیات الحاق EQUI در جبر رابطه ای پایگاه داده
وقتی که الحاق تتا تنها از شرط هم ارزی استفاده کند، تبدیل به الحاق EQUI خواهد شد. مثلاً در دستور زیر از این نوع شرط استفاده شده و بنابراین الحاق EQUI رخ داده است.
A ⋈ A.column 2 = B.column 2 (B)
خروجی دستور بالا به صورت جدول زیر خواهد بود.
A ⋈ A.column 2 = B.column 2 (B) | |
column 2 | column 1 |
1 | 1 |
الحاق EQUI سختترین عملیات برای پیادهسازی بهطور بهینه با استفاده از SQL در یک پایگاه داده رابطه ای به حساب میآید و یکی از دلایل مشکلات عملکردی اساسی در RDBMS به شمار میرود.
الحاق طبیعی NATURAL JOIN در جبر خطی پایگاه داده رابطه ای
الحاق طبیعی تنها در صورتی قابل اجرا است که صفتی مشترک یا همان ستونی مشترک بین رابطهها وجود داشته باشد. نام و نوع این صفت مشترک باید یکسان باشد. به عنوان نمونه در ادامه مثالی ارائه شده است. برای مثال دو جدول زیر را در نظر میگیریم.
C | |
Square | Num |
4 | 2 |
9 | 3 |
D | |
Cube | Num |
8 | 2 |
27 | 3 |
الحاق طبیعی دو جدول بالا به صورت زیر انجام میشود.
C ⋈ D
حاصل دستور بالا، جدول زیر است.
C ⋈ D | ||
Cube | Square | Num |
8 | 4 | 2 |
27 | 9 | 3 |
عملیات الحاق خارجی در جبر پایگاه داده رابطه ای
در الحاق خارجی، همراه با تاپلهایی که معیار مطابقت را برآورده میکنند، همچنین برخی یا تمام تاپلهایی را لحاظ خواهیم کرد که با معیار مربوطه مطابقت ندارند.
در ادامه این بخش به آموزش انواه الحاق خارجی پرداخته شده است.
الحاق خارجی چپ Left Outer Join
در الحاق بیرونی چپ، عملیات نگهداری تمام تاپلها را در رابطه سمت چپ مجاز میشمارد. اگرچه، اگر هیچ تاپل مطابقی در رابطه سمت راست پیدا نشود، آنگاه صفتهای رابطه سمت راست در نتیجه الحاق با مقادیر پوچ یا همان Null پُر خواهند شد.
برای مثال ۲ جدول زیر را در نظر میگیریم.
A | |
Square | Num |
4 | 2 |
9 | 3 |
16 | 4 |
B | |
Cube | Num |
8 | 2 |
18 | 3 |
75 | 5 |
برای الحاق خارجی سمت چپ از نماد زیر استفاده میشود.
برای مثال، دو جدول بالا با دستور زیر الحاق خارجی سمت چپ میشوند.
حاصل دستور بالا به صورت زیر خواهد بود.
A ⋈ B | ||
Cube | Square | Num |
8 | 4 | 2 |
18 | 9 | 3 |
– | 16 | 4 |
الحاق خارجی راست Right Outer Join در جبر خطی در پایگاه داده چگونه است؟
در عملیات الحاق خارجی راست، نگهداری از تمام تاپلها در رابطه سمت راست مجاز است. اگرچه، در صورتی که هیچ تاپل مطابقی در رابطه سمت چپ پیدا نشود، آنگاه صفتهای رابطه سمت چپ در نتیجه الحاق، با مقادیر Null پُر خواهند شد.
علامت الحاق خارجی راست را هم با نماد زیر نشان میدهند.
در تصویر زیر سعی شده است این نوع الحاق به صورت بصری شرح داده شود تا درک بهتری نسبت به آن حاصل شود.
عملیات الحاق خارجی راست برای دو رابطه A و B که در مثال قبل جدولهای آنها آمده، به صورت دستور زیر انجام میشود.
خروجی دستور بالا به صورت جدول زیر است.
A ⋈ B | ||
Square | Cube | Num |
4 | 8 | 2 |
9 | 18 | 3 |
– | 75 | 5 |
الحاق خارجی کامل در جبر رابطه ای پایگاه داده
در یک الحاق خارجی کامل، تمام تاپلها صرف نظر از شرط مطابقت، از هر دو رابطه در نتیجه لحاظ میشوند. این نوع الحاق با علامت یا نماد زیر نشان داده میشود.
برای الحاق کامل دو جدول A و B که در دو مثال قبلی تعریف شدهاند از دستور زیر استفاده میشود.
خروجی دستور بالا در ادامه آمده است.
A ⋈ B | ||
Square | Cube | Num |
8 | 4 | 2 |
18 | 9 | 3 |
– | 16 | 4 |
75 | – | 5 |
به این ترتیب این مطلب در اینجا به پایان میرسد، در انتها به ارائه جمعبندی از این نوشتار پرداخته شده است.
دستور Join و انواع آن در SQL — راهنمای جامع
جمعبندی
بنابراین به بیان ساده میتوان گفت که انجام عملیات مختلف روی جدولهای دیتابیس را جبر رابطه ای در پایگاه داده مینامند. جدولها در پایگاه داده همان رابطهها هستند و به همین دلیل است که به این نوع محاسبات و عملیات جبر رابطه ای میگویند. در این مطلب عملیات مختلف جبر رابطه ای در دیتابیس آموزش داده شدند و برای اکثر این عملیات نیز مثالهای مختلفی به منظور درک بهتر مفاهیم ارائه شدند.