تماس درباره   صفحه اصلی
  پايگاه داده > جبر رابطه اي  
 
 

جبررابطه ای


جبر رابطه ای يک زبان پرس و جو است که عمليات روی پايگاه داده را توسط نمادهايی به صورت فرمولی بيان می کند.

Selection
Projection
Cartesian Product
Set Union
Set Difference
Cartesian Product
Set Intersection
Division
Join
مثال کاربردی


جبر رابطه ای (relational algebra) عمليات روی پايگاه داده را به صورت فرمول بيان می کند. جبر رابطه ای توسط Codd به عنوان مبنای زبان های پرس و جوی پايگاه داده ارائه شد. عملگرهای جبر رابطه ای توسط نمادهائی نمايش داده می شوند.

شش عملگر مبنائی جبر رابطه ای که توسط Codd تعريف شد عبارتند از:

• Selection: σ
• Projection:
• Cartesian Product: ×
• Set union:
• Set difference: –
• Rename:

اکثر عملگرهای ديگر توسط اين عملگرها تعريف می شوند. مهمترين آنها عبارتند از:

• Set Intersection:
• Division: ÷
• Natural Join:

هر عملگرجبر رابطه ای روی يک يا دو رابطه به عنوان ورودی عمل کرده و يک رابطه جديد را به عنوان نتيجه توليد می کنند.


Selection

عملگر انتخاب (selection) يک عملگر يکتائی است که سطرهائی از يک رابطه را انتخاب می کند. فرم کلی آن به صورت زير است:

σشرط(R)

خروجی عملگر selection رابطه ای است شامل سطرهايی از رابطه R که شرط موردنظر در آنها برقرار بوده است.

کارديناليتی جدول حاصل کمتر يا مساوی جدول اوليه است اما درجه آنها تفاوت نمی کند.

شرط می تواند توسط علائم = ، ،> ،< ، ، ، (and) ، (or) و ~(not) ساخته شود.


Projection

عملگر پروژه (projection) عملگر يکتائی که ستون هائی از يک رابطه را انتخاب می کند. شکل کلی آن به صورت زير است:

a1,…,an(R)

a1,…,an مجموعه از اسامی صفات خاصه است که از رابطه R انتخاب می شوند. نتيجه عمل پروژه جدولی شامل کليه تاپل های رابطه R است که محدود به مجموعه صفات مشخص شده است.

اگر در جدول حاصل سطرهايی مشابه هم باشند با هم ترکيب می شوند و سطرهای تکراری حذف می شوند. معمولا يک کليد کانديد را نگه می داريم تا کارديناليتی حفظ شود. درجه جدول حاصل کمتر يا مساوی جدول اوليه است.


Cartesian Product

ضرب دکارتی (Cartesian Product) عملگری است که روی دو جدول کار می کند و جدول جديدی را می دهد که که يک رکورد برای هر جفت رکورد ممکن از هر دو جدول دارد. فرم کلی آن به صورت زير است:

R × S

رکوردهای های رابطه R با کليه رکوردها رابطه S به اين صورت ترکيب می شوند که اولين سطر از رابطه R در کنار اولين سطر رابطه S در جدول حاصل قرار می گيرد و به همين ترتيب تا آخرين سطر S اضافه می شود. همين عمل مجددا برای سطرهای ديگر رابطه R تکرار می شود.

Cartesian product Example

در جدول حاصل احتمال تکرار شدن ستون ها وجود دارد.

درجه جدول حاصل برابر مجموع درجات دو جدول و کارديناليتی آن برابر حاصل ضرب کارديناليتی دو رابطه می باشد.

ضرب دکارتی در جبر رابطه ای متفاوت از آنچه درتئوری مجموعه است تعريف می شود.


Set Union

عملگر اجتماع (union) يک عملگر دوتائی است که مشابه عمل اجتماع در تئوری مجموعه ها عمل می کند. فرم کلی آن به صورت زير است:

R S

اجتماع دو رابطه R و S جدولی است شامل کليه تاپل های رابطه R و رابطه S.

دو رابطه ای که روی آنها عمل اجتماع انجام می شود بايد همساز(compatible) باشند، يعنی بايد دارای مجموعه صفات خاصه يکسان باشند.

Union Example

درجه جدول حاصل تفاوتی نمی کند اما کارديناليتی آن برابر با مجموع سطرهای هردو جدول منهای سطرهای مشترک است.


Difference

عملگر تفاضل (difference) يک عملگر دو تائی است و مشابه عمل تفاضل در تئوری مجموعه ها است. فرم کلی آن به صورت زير است:

R - S

تفاضل R و S جدولی است که شامل کليه تاپل هايی است که در R هست ولی در S نيست. سطر اول رابطه R با کليه سطرهای رابطه S مقايسه می شود هر کدام که در رابطه S نبود در جدول حاصل قرار می گيرد.

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

Difference Example

کارديناليتی جدول حاصل برابر کارديناليتی رابطه R منهای سطرهای مشابه است. درجه آنها تفاوتی نمی کند.


Rename

عملگر تغيير نام (rename) يک عملگر يکتائی است که برای تغيير نام صفات خاصه يک رابطه يا نام خود رابطه استفاده می شود. تغيير نام به صورت نوشته می شود:

A(B)

نتيجه عمل تغيير نام روی رابطه B همان رابطه B است با نام جديد A به بيان ديگر رابطه B را به A تغيير نام می دهد.


Intersection

عملگر اشتراک (intersection) بر اساس عمل اشتراک مجموعه ها می باشد. فرم کلی آن به صورت زير است:

R S

جدول حاصل از اشتراک دو رابطه R و S جدولی است شامل کليه تاپل هايی که در هر دو جدول وجود دارد.

دو رابطه ای که روی آنها عمل اشتراک انجام می شود بايد همساز باشند.

Intersection Example

Division

عملگر تقسيم (division) روی دو رابطه انجام می شود. فرم کلی آن به صورت زير است:

R ÷ S

حاصل تقسيم رابطه R بر رابطه S رابطه ای است شامل کليه تاپل هائی از R برای صفات خاصه مشترک در رابطه S نيز وجود دارد. در جدول حاصل صفات خاصه ای از R اضافه می شود که در S نيست.

Division Example

عمل تقسيم توسط عملگر های مبنائی به صورت زير شبيه سازی می شود:

T := a1,...,an(R) × S
U := T - R
V := a1,...,an(U)
W := a1,...,an(R) – V


Join

الحاق طبيعی (Natural Join) يک عملگر دوتائی است که به صورت زير نوشته می شود:

R S

نتيجه الحاق طبيعی رابطه ای است شامل کليه ترکيبات تاپل های R و S است که صفات خاصه مشترک آنها برابر است.

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

دو رابطه که در الحاق شرکت می کنند بايد دارای صفت خاصه مشترکی باشند.

مثال. جدول Loan و Borrower که به ترتيب حاوی مشخصات وام ها و وام گيرنده ها هستند را درنبظر بگيريد.

Natural join Example

مثال. در جدول Borrower کليد خارجی فيلد Loan_no است. الحاق جداول Loan و Borrower اسامی وام گيرنده ها و مقدار وام آنها را می دهد.

وقتی عمل الحاق روی دو رابطه انجام می شود بعضی داده ها از دست می روند. بعضی وقت ها اين داده ها اطلاعات مفيدی را دارند. الحاق خارجی (outer join) جداول را به نحوی ترکيب می کند که داده های مورد نظر در جدول نتيجه باقی بمانند.

بسته به اطلاعاتی که حفظ می شود سه نوع الحاق خارجی وجود دارد:

left outer join •
right outer join •
full outer join •

left outer join

نتيجه الحاق چپ مجموعه کليه تاپل های رابطه R و S است که صفات خاصه مشترک آنها يکسان است بعلاوه تاپل هايی در R که برای صفت خاصه مشترک همنظيری در S ندارد. برای اين تاپل ها در صفات خاصه ای که از S اضافه می شوند مقدار null قرارداده می شود.

الحاق چپ به صورت زير نوشته می شود:

R S

مثال. الحاق خارجی چپ دو جدول Loan و Borrower به صورت زير می شود:

Left outer join Example

الحاق چپ با استفاده ازالحاق طبيعی و اجتماع بدست می آيد:

R S = S (R S)

right outer join

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

R S

مثال. الحاق خارجی راست دو جدول Loan و Borrower به صورت زير می شود:

Right outer join Example

الحاق چپ با استفاده ازالحاق طبيعی و اجتماع بدست می آيد:

R S = R (R S)

full outer join

الحاق خارجی کامل يا به طور خلاصه الحاق خارجی الحاق خارجی چپ و راست را با هم ترکيب می کند. نتيجه الحاق کامل خارجی مجموعه کليه ترکيبات تاپل های R و S است که صفات خاصه مشترک آنها برابر است بعلاوه تاپل هائی در S که در R نيستند و تاپلهای R که در S وجود ندارند.

الحاق خارجی دو رابطه R و S به صورت زير نوشته می شود:

R S

مثال. الحاق خارجی دو جدول Loan و Borrower به صورت زير می شود:

Full outer join Example

الحاق خارجی کامل با اجتماع الحاق چپ و الحاق راست بدست می آيد:

R S = (R S)(R S)
R S = R S (R S)


مثال های کاربردی

مثال بانک. رابطه های زير را درنظر بگيريد:

branch (branch_name, branch_city, assets)
customer (customer_name, customer_street, customer_city)
account (account_number, branch_name, balance)
loan (loan_number, branch_name, amount)
depositor (customer_name, account_number)
borrower (customer_name, loan_number)

سوال1. کليه شماره وام هائی که مقدارشان از 1200 بيشتر است را پيدا کنيد.

loan_numberamount > 1200 (loan))

سوال2. کليه مشتريانی که يک وام، يک حساب يا هردو را پيدا کنيد.

customer_name (borrower) customer_name (depositor)

سوال3. کليه مشتريانی که يک وام و يک حساب در بانک دارند را پيدا کنيد..

customer_name (borrower) customer_name (depositor)

سوال4. اسامی کليه مشتريانی که يک وام در شعبه Perryridge دارند را پيدا کنيد..

customer_namebranch_name="Perryridge"(borrower loan))

سوال5. اسامی کليه مشتريانی که يا حساب دارند يا وام گرفته اند (ولی نه هردو) را پيدا کنيد.

customer_name ((σ account_number is null or loan_number is null ( depositor borrower))

سوال6. اسامی کليه مشتريانی که يک وام در شعبه Perryridge دارند ولی هيچ حسابی در هيچ شعبه ندارند را پيدا کنيد..

customer_namebranch_name="Perryridge" (borrowerloan)) – customer_name(depositor)


سوالات چندگزينه ای مربوط به جبر رابطه ای


 


 


صفحه اصلی| PDF| درباره| تماس