Post on 23-Jul-2020
1
: فصل عملگرهای اضافی در جبر رابطه ای
Email:usefirad@gmail.com 1
سایر عملگرهای جبر رابطه ای ۶ با توان می که بطوری است کامل و جامع زبان یک ای رابطه جبر زبان•
.آورد بدست را عبارتی هر قبل عملگر برای اضافی عملگرهای یکسری ، دستورات شدن طوالنی دلیل به تنها•
. است شده اضافه ای رابطه جبر به تسهیل قطف و افزایند نمی چیزی رابطه جبر قدرت به اضافی عملگرهای این•
. روند می بکار گیری گزارش امر در تسهیل برایEmail:usefirad@gmail.com 2
2
... ادامه -سایر عملگرهای جبر رابطه ای اشتراک عملگر -۱
رکوردهای مشترک از دو جدول را بر می گرداند فرم کلی
: شروط Rجداول های ستون عدادت.۱ , S باشد داشته یکسانی درجه ( . باشد برابر هم با (Email:usefirad@gmail.com .باشد یکسان ، s جدول ام i ویژگی با r جدول ام i ویژگی دامنه بایستی i هر ازای به.۲ 3
... ادامه -عملگر اشتراک ت ، زیرا عملگر اشتراک یک عملگر اساسی نیس
. ساخت عملگر تفاضل می توان آن را با
Email:usefirad@gmail.com 4
3
... ادامه -عملگر اشتراک A Bα 1α 2β 1β 2
R∩S = R – ( R – S )
مثالA Bα 2β 3β 5
A Bα 2
Email:usefirad@gmail.com 5
ند و هم وام کوئری بنویسید که کد مشتریانی که هم حساب دار :مثال . دریافت نموده اند ، نمایش دهدid depositor id borrower
راک درخواست باال بدون استفاده از عملگر اشت
id depositor id depositor id borrower
... ادامه -عملگر اشتراک
Email:usefirad@gmail.com 6
4
آن شهر ، هم کوئری بنویسید که نام شهرهایی که از :تمرین کالسی . کارمند و هم مشتری داریم ، نمایش دهد
... ادامه -عملگر اشتراک
Email:usefirad@gmail.com 7
آن شهر ، هم کوئری بنویسید که نام شهرهایی که از :تمرین کالسی . کارمند و هم مشتری داریم ، نمایش دهد
... ادامه -عملگر اشتراک
Email:usefirad@gmail.com 8
5
طبیعی ) پیوند( الحاق عملگر -۲ش خوددرون ، که شرطش شرطی بین دو جدول نوعی پیوند •
.نهفته استدهای فیلکه مقادیر شود ، می رکوردهایی انجام بین پیوند •
. ، با هم برابر باشد) در صورت وجود ( نامشان هم ادل باشند ، این عملگر معهمنام نداشته اگر جداول فیلد •
. ضرب دکارتی استEmail:usefirad@gmail.com 9
... ادامه -عملگر الحاق طبیعی فرم کلی
A B Ca b ck i hm n o
D C Wd e fg h i
A B C D C Wk i h g h i
R Sستون مشترک
Email:usefirad@gmail.com 10
6
... ادامه -عملگر الحاق طبیعی ان بیش از کوئری بنویسید که ، کد مشتریانی که موجودی حسابش
. دالر است ، نمایش دهد :مثال
acc _ number = Number own× accountbalance>1000
Customer code
یعی بدون استفاده از عملگر الحاق طب) الف
Email:usefirad@gmail.com 11
... ادامه -عملگر الحاق طبیعی با استفاده از عملگر الحاق طبیعی) ب
balance > 1000
customer code
Email:usefirad@gmail.com 12
7
... ادامه -عملگر الحاق طبیعی . یدمعادل الحاق طبیعی عبارت الف را در قسمت ب بنویس : تمرین کالسی
ی با استفاده از دکارت) الف (customer × (σ acc _ number = number (own× account ))))(σ customer code = code (σ balance>1000п customer name یبا استفاده از الحاق طبیع) بEmail:usefirad@gmail.com 13
... ادامه -عملگر الحاق طبیعی را مردود کوئری بنویسید که ، نام دانشجویانی را که درس : مثال . شده اند ، نمایش دهد
table 1 : student (id , name ,family , city , field of study )table 2 : course( id , code , score )table 3 : course_table ( code , c_name , unit )
id name family city field of study8020 a aa tehran ensani8021 b bb semnan tajrobi8022 c cc esfehan bargh
Code C_Name unit10 Farsi 311 Zaban 312 Tafsir 1
id Code Score8020 10 128020 12 148021 10 98022 12 128022 10 13
student
course
course_table
Email:usefirad@gmail.com 14
8
... ادامه -عملگر الحاق طبیعی عیبا استفاده از الحاق طبی) الف
name رتی با استفاده از ضرب دکا) تمرین کالسی ب
Email:usefirad@gmail.com 15
... ادامه -عملگر الحاق طبیعی موجود از رابطهکلید خارجی یک اگر در رابطه: نکته، همان و طبیعی رابطه هایباشد ، حاصل پیوند
ه می باشد ، با این تفاوت کرکوردها با همان جدولهای ، همه فیلد بجای تنها نمایش کلید جدول
.را هم نمایش می دهدجدولEmail:usefirad@gmail.com 16
9
... ادامه -عملگر الحاق طبیعی :مثال
SID Sname Sfamily Field84110 Ali Ahmadi X84120 Reza Rezaee Y84130 Hassan Hasani Z
SID TID CID Mark84110 2 01 1284110 1 03 884130 2 02 18
∞
SID Sname Sfamily Field TID CID Mark84110 Ali Ahmadi X 2 01 1284110 Ali Ahmadi X 1 03 884130 Hassan Hasani Z 2 02 18Email:usefirad@gmail.com 17
) ( نیم پیوند که در است ، با این تفاوتطبیعی بین دو رابطه پیوند همان
.یک رابطه دیده می شودجواب ، فقط فیلدهای : انواع نیم پیوند سمت چپ نیم پیوند سمت راست
Email:usefirad@gmail.com 18
10
پنیم پیوند سمت چکه در است ، با این تفاوتطبیعی بین دو رابطه پیوند همان
.می شوددیده سمت چپ جواب ، فقط فیلدهای رابطهA B C1 4 27 6 39 1 4
D C W M8 3 6 59 8 7 0
R SA B C7 6 3
(
Email:usefirad@gmail.com 19
تنیم پیوند سمت راسکه در است ، با این تفاوتطبیعی بین دو رابطه پیوند همان
.می شوددیده سمت راست جواب ، فقط فیلدهای رابطهA B C1 4 27 6 39 1 4
D C W M8 3 6 59 8 7 0
R S
)(
D C W M8 3 6 5
Email:usefirad@gmail.com 20
11
) ( الحاق بیرونی العات الحاق بیرونی ، تعمیمی از عملگر الحاق است که مقادیر و اط
.از دست رفته حاصل از الحاق را مورد توجه قرار می دهدانواع
) ( الحاق بیرونی سمت چپ ) ( الحاق بیرونی سمت راست
) ( الحاق بیرونی کامل Email:usefirad@gmail.com 21
الحاق بیرونی سمت چپ .انجام مي شود طبیعیرابطه ، پیوند دو ابتدا بین .۱.وندشجواب اضافه می ، به رابطه سمت چپ که پیوند نخورده اند رکوردهایی از .۲.داده می شودقرار Nullها عبارت مقادیر سایر فیلد جای ب.۳
A B C1 4 27 6 39 1 4
D C W M8 3 6 59 8 7 0
R SA B C D W M7 6 3 8 6 51 4 2 null null Null9 1 4 null null null
Email:usefirad@gmail.com 22
12
الحاق بیرونی سمت راست .انجام مي شود طبیعیرابطه ، پیوند دو ابتدا بین .۱.شوند جواب اضافه می، به پیوند نخورده اند راست که رابطه سمت رکوردهایی از .۲.داده می شودقرار Nullها عبارت مقادیر سایر فیلد جای ب.۳
A B C1 4 27 6 39 1 4
D C W M8 3 6 59 8 7 0
R SA B C D W M7 6 3 8 6 5
null null Null 9 8 7
Email:usefirad@gmail.com 23
لالحاق بیرونی کام.انجام مي شود طبیعیرابطه ، پیوند دو ابتدا بین .۱.وندپیوند نخورده اند ، به جواب اضافه می شچپ که رکوردهایی از رابطه سمت .۲.شوند جواب اضافه می، به پیوند نخورده اند راست که رابطه سمت رکوردهایی از .۳.داده می شودقرار Nullها عبارت مقادیر سایر فیلد جای ب.۴
A B C1 4 27 6 39 1 4
D C W M8 3 6 59 8 7 0
R S A B C D W M7 6 3 8 6 51 4 2 null null Null9 1 4 null null null
null null Null 9 8 7Email:usefirad@gmail.com 24
13
پیوند شرطیه پیوند بین رکوردهایی از دو جدول صورت می گیرد ، ک
. بین آنها برقرار باشد ) ( شرطA B C1 4 27 6 39 1 4
D C W M8 3 6 59 8 7 0
R SA>D
A B R.C D S.C W M9 1 4 8 1 6 5
Email:usefirad@gmail.com 25
... ادامه پیوند شرطی آنها سابح میزان که افرادی حساب شماره که بنویسید کوئری : مثال
.دهد نمایش ، اند کرده دریافت که است وامی میزان از کمتر ،Num balance100 15000200 16000
3000 14000
Account BorrowerNum balance100 14000200 18000
3000 24000account . balance < borrower . Balance
Email:usefirad@gmail.com 26
14
... ادامه -سایر عملگرهای جبر رابطه ای) ÷ ( تقسیم عملگر -۳
:تقسیم پذیر است رابطهبر رابطه.باشد R1مجموعه فیلد های ، زیر R2فیلد های اگر مجموعه
.ندارد وجود R2 در که ، استR1های فیلد تمام شامل ، حاصل رابطه شمای• رکوردهای همه که ، گیرد می قرار R1رابطه از رکوردهایی فقط ، حاصل رابطه در•
R2 ، جدول در ، رکوردها آن کنار درR1 شود دیده.Email:usefirad@gmail.com 27
... ادامه -سایر عملگرهای جبر رابطه ای: مثال
A B Ca b ck d ea d ek g hp d c
B Cd eb c
R SAa
Email:usefirad@gmail.com 28
15
...ادامه -سایر عملگرهای جبر رابطه ایA: مثال B C D E
α a α a 1α a γ a 1α a γ b 1β a γ a 1β a γ b 3γ a γ a 1γ a γ b 1γ a β b 1
D Ea 1b 1
SA B Cα a γγ a γ
Email:usefirad@gmail.com 29
...ادامه -سایر عملگرهای جبر رابطه ای حساب ها هشعب همه در که مشتریانی ،کد که بنویسید کوئری : مثال
Id .دهد نمایش ، دارند Num1 10252 10242 10253 10261 10262 10272 1028
depositorNum Balance Br_ID1025 100 B11024 120 B21026 400 B31027 200 B31028 300 b4
accountBr_ID Branch_name City
B1 Ferdousi TehranB2 Moalem SariB3 Tohid SemnanB4 Tajrish tehran
branch
ط آنها کاربرد تقسیم برای پاسخ به پرس و جوهایی است که در شر Email:usefirad@gmail.com. باشدذکر شده » همه« کلمه 30
16
...ادامه -سایر عملگرهای جبر رابطه ای تقسیم مراحل
.نمائیدابتدا باید لیست همه شعبه ها را مشخص -۱ امکد در کسی چه ، شود محاسبه باید بعد مرحله در -۲
باوجداول یعنی .دارد حساب شعبه .شود نگاشت فیلد روی و شوند الحاق یکدیگر
Email:usefirad@gmail.com 31
...ادامه -سایر عملگرهای جبر رابطه ایdeposit ∞ account br-id branch
id , br-id ۱مرحله
۲مرحله
Email:usefirad@gmail.com 32
17
...ادامه -سایر عملگرهای جبر رابطه ای
Id Br-id1 B12 B22 B13 B31 B32 B32 B4
Br_IDB1B2B3b4
Id2
deposit ∞ account br-id branch id , br-id ۲مرحله ۱مرحله
Email:usefirad@gmail.com 33
...ادامه -سایر عملگرهای جبر رابطه ای .دهد نمایش ، دارند حساب تهران های بهشع همه در که را مشتریانی نام که بنویسید کوئری : مثال
deposit ∞ account branch namebranch city = “tehran” ( branch)
customer name , branch name منزل در تمرین :. عبارت فوق بدون عملگر تقسیم نوشته شود
Email:usefirad@gmail.com 34
18
... ادامه -سایر عملگرهای جبر رابطه ای ) ( تخصیص عملگر -۴
نگهداری موقت حاصل عملیات میانی و بخش های مختلف یک عبارت جبر رابطه ای
: مثال . قرار می گیرد در محتویات رابطه
Email:usefirad@gmail.com 35
...ادامه -سایر عملگرهای جبر رابطه ای ۱۰زیر هاآن نمره که دانشجویانی که بنویسید کوئری : مثال
.نماید حذف لیست از ، باشد میTable 1 : Student (Id , Name ,Family , City , Field Of Study )Table 2 : Courses( Id , Course Name , Number Of Units , Score )
(stdudent ∞ courses)σ Score < 10 ( stdudent ∞ courses) (stdudent ∞ courses)
Email:usefirad@gmail.com 36
19
...ادامه -سایر عملگرهای جبر رابطه ای هر دیموجو میزان از درصد پنج که بنویسید کوئری : مثال
رمزبو حساب به آن کارکرد سود بعنوان را حساب.نماید واریز
account _ number , branch name , balance × 0.05( account )
Email:usefirad@gmail.com 37
) یافته متعمی سازی تصویر ( یافته توسعه نگاشت عملگرر لیست همانند نگاشت معمولی است ، با این تفاوت که د. آن می توان از توابع ریاضی استفاده کرد
فرم کلی Email:usefirad@gmail.com 38
20
... امهاد یافته توسعه نگاشت عملگرNameمثال Limit balance
Ali 6000 700Reza 2000 400Milad 3500 200
info
Name Limit + balanceAli 6700
Reza 2400Milad 3700
نتیجه اجرای عبارتEmail:usefirad@gmail.com 39
... امهاد یافته توسعه نگاشت عملگرکوئری بنویسید که نشان دهد هر کارمند چقدر مالیات می دهد ؟ مثال
. پیدا کرده است تغییرنام ) taxation( مالیات به ) salary)- 200 (7/ 100(تابع Email:usefirad@gmail.com 40
21
... امهاد یافته توسعه نگاشت عملگر .نماید نمایش ، پرداختی مبلغ در تخفیف %۱۰ محاسبه از پس ، را اند نخورده ساندویچ یکهمشتریان پرداختی میزان و کد که بنویسید کوئری مثال
code type price 1 sandwich 50002 pizza 300003 sandwich 85004 sandwich 25000
Email:usefirad@gmail.com 41
... امهاد یافته توسعه نگاشت عملگر( Customer )
Type = “ sandwich “ Customer -code , price – (price × 10 %)
code , PT
Email:usefirad@gmail.com 42
22
توابع مجموع ساز ورودیرا بعنوان مجموعه ای از مقادیر توابعی که
. ندباز می گردا خروجیرا بعنوان یک مقدار گرفته و
ورودیمقادیر مجموعه ای از خروجی
Email:usefirad@gmail.com 43
... ادامه -توابع مجموع سازرا در نظر بگیرید رابطه : مثال
employee – name branch – name salary ali tajrish 1500
reza tajrish 1300hamid tajrish 2500
mehran Tohid 1600Akbar Tohid 1500Milad Valiasr 5300
Arman Valiasr 1500Shahin Valiasr 1300
Email:usefirad@gmail.com 44
23
... ادامه -توابع مجموع ساز از استفاده با ، جدول طبق : مثال ادامه که وقیحق مجموع که بنویسید کوئری ، ساز مجموع توابع
.مایدن محاسبه ، است شده پرداخت وقت پاره کارمندان بهsalary ( pt – works)
Sum of salary 16500
نتیجه اجرای عبارتEmail:usefirad@gmail.com 45
... ادامه -توابع مجموع سازابع برای حذف مقادیر تکراری در ورودی توابع ، در انتهای نام ت
. به همراه یک خط فاصله استفاده می شود از کلمه
branch - name( pt – works)، را کوئری بنویسید که تعداد شعبه های جدول : مثال
. نمایش دهدCount of branch -name
3 نتیجه اجرای عبارت
Email:usefirad@gmail.com 46
24
... ادامه -توابع مجموع ساز :گروه بندی
1 2 n A1 A2 An( E ) اعمال توابع مجموع ساز ، روی چندین گروه
Final sigma
فرم کلی E : است ای رابطه جبر عبارت.
G1 , G2 ,…, Gn ، یردگ می صورت ها ویژگی آن اساس بر بندی گروه که ، ها ویژگی از لیستی. .باشد می ساز مجموع تابع یک عنوان ، iF هر
.باشد می ای رابطه جبر عبارت در ویژگی یه عنوان ، iA هرEmail:usefirad@gmail.com 47
... ادامه -توابع مجموع ساز
salary( pt – works)
حقوق مجموع جدول از که بنویسید کوئری : مثال .نماید محاسبه تفکیک به ، را شعبه هر کارمندان
branch -name sum of salarytajrish 5300tohid 3100valiasr 8100
نتیجه اجرای عبارتEmail:usefirad@gmail.com 48
25
... ادامه -توابع مجموع ساز
salary salary( pt – works)
و حقوق مجموع جدول از که بنویسید کوئری : مثال .مایدن محاسبه ، را شعبه هر کارمندان دریافتی حقوق بیشترین
branch -name sum of salary Max of salary tajrish 5300 2500tohid 3100 1600valiasr 8100 5300
نتیجه اجرای عبارتEmail:usefirad@gmail.com 49
داده پایگاه در تغییرات ایجاد
Email:usefirad@gmail.com 50
26
) ( افزودن ... ادامه داده پایگاه در تغییرات ایجاد
.کندیک جدول اضافه می یک رکورد به رکوردهای فرم کلی
اضافه می کند را به جدول رکورد
Email:usefirad@gmail.com 51
در افتتاح حسابی برای آقای علی ، با شماره : مثال دالر با میزان شعبه
... ادامه داده پایگاه در تغییرات ایجاد
Email:usefirad@gmail.com 52
27
آیا دستور زیر صحیح می باشد ؟ ... ادامه داده پایگاه در تغییرات ایجاد
Email:usefirad@gmail.com 53
وام دریافت tohidکوئری بنویسید که ، برای همه کسانی که از شعبه : مثال از شماره وام . ( دالر افتتاح شود 200کرده اند ، یک حساب جایزه با میزان
) بعنوان شماره حساب تشویقی استفاده شود
... ادامه داده پایگاه در تغییرات ایجاد
branch-name=“tohid” (borrower ∞ loan )
branch –name , loan number (r1)
customr –name , loan number (r1)
Email:usefirad@gmail.com 54
28
) ( بهنگام سازی ... ادامه داده پایگاه در تغییرات ایجاد
فرم کلی ویرایش بخشی از رکوردهای یک جدول (r)Pp(r)
۲قسمت ۱قسمت Email:usefirad@gmail.com 55
:مثال ... ادامه داده پایگاه در تغییرات ایجاد
مبلغ ، ۵ شماره حساب به ، بخواهیم فقط که صورتی در ؟ است صحیح زیر دستور آیا ، نمائیم اضافه دالر ۵۰۰
( account )num = 5
num , balance + 500 , type
Email:usefirad@gmail.com 56
29
:مثال ... ادامه داده پایگاه در تغییرات ایجاد
مبلغ ، ۵ شماره حساب به ، بخواهیم فقط که صورتی در ؟ است صحیح زیر دستور آیا ، نمائیم اضافه دالر ۵۰۰
( account )σ num = 5π num , balance + 500 , type
( account )account - σ num = 5account ∪
شود Updateقسمتی که باید -۱. دالر اضافه می کند ۵۰۰، مبلغ ۵به موجودی حساب
. شود updateقسمتی که نباید -۲ جدول و گردد می حذف ها حساب کل از ، ۵ شماره حساب ، بخش این در
account ماند می باقی ، دهد می نشان را ۵ حساب که تاپلی بدون .
Email:usefirad@gmail.com 57
:مثال ... ادامه داده پایگاه در تغییرات ایجاد
مهه داده پایگاه درس نمرات به که بنویسید کوئری .نماید اضافه نمره ۲ دانشجویان
( course )σ c-name=“database”π code , score + 2
( course)course - σ c-name=“database”course ∪
Email:usefirad@gmail.com 58
30
) ( حذف ... ادامه داده پایگاه در تغییرات ایجاد
فرم کلی حذف یک رکورد از رکوردهای یک جدول
حذف می کند را از جدول کل رکورد Email:usefirad@gmail.com 59
حذف حساب شماره : مثال ... ادامه داده پایگاه در تغییرات ایجاد
Email:usefirad@gmail.com 60
31
ان بین کوئری بنویسید که تمام وام هایی که مقدارش: مثال . دالر است ، حذف نماید ۵۰صفر تا
... ادامه داده پایگاه در تغییرات ایجاد
σ amount >=0 and amount <=50 ( loan )loan l
Email:usefirad@gmail.com 61
شعبه کوئری بنویسید که تمام حساب های موجود در: مثال . توحید را ، حذف نماید
... ادامه داده پایگاه در تغییرات ایجاد
σ branch_name =“tohid”( account)account a
Email:usefirad@gmail.com 62
32
کوئری بنویسید که تمام حساب های جاری زیر: مثال . دالر را ، حذف نماید
... ادامه داده پایگاه در تغییرات ایجاد
σ type=“jari” ^ balance <=100( account)account a
Email:usefirad@gmail.com 63
ان ساکن در کوئری بنویسید که تمام مشتری: تمرین کالسی را از جدول مشتریان حذف واقع در شهر خیابان
. نماید
... ادامه داده پایگاه در تغییرات ایجاد
Email:usefirad@gmail.com 64
33
) ( دیدگاه .همه مثال های مطرح شده ، روی الیه منطقی بود -.بدلیل مسائل امنیتی باید برخی از رابطه ها پنهان شود -
:مثال اء اگر بخواهیم شخصی فقط به نام مشتریان و شماره وام های اعط
: اشد شده دسترسی داشته باشد و به مقدار آن دسترسی نداشته بcustomer –name , loan number ( borrower ∞ loan )
Email:usefirad@gmail.com 65
...ادامه دیدگاه . ی باشدگاهی اوقات به ایجاد رابطه هایی با انعطاف بیشتر احتیاج م
:مثال که را ریانیمشت نام ، بخواهد بانک تبلیغات قسمت از کارمندی ، که کنید فرض
طرف هشعب همراه به ، اند گرفته وام بانک از یا هستند بانک در حساب دارای از اصلح اطالعات به فقط ، کارمند این صورت این در . باشه داشته آنها حساب
branch–name , customer_name( depositor ∞ account) : دارد دسترسی زیر عبارات
branch–name , customer_name( borrower ∞ loan)Email:usefirad@gmail.com 66
34
...ادامه دیدگاه تعریف دیدگاه
ک ، یباشد جدول مجازی قابل رویت یک بعنوان ای که رابطه هر . می شوددیدگاه نامیده
:فرم کلی نام دیدگاه =
Email:usefirad@gmail.comجبر رابطه ای صحیح : 67
...ادامه دیدگاه دیدگاه کارمند تبلیغات مثال قبل با نام : مثال
branch–name , customer_name( depositor ∞ account)
branch–name , customer_name( borrower ∞ loan)
. از دیدگاه می توان بعنوان یک رابطه استفاده کرد: نکته customer_name
branch-name =“tohid” ( all-customer )Email:usefirad@gmail.com 68
35
...ادامه دیدگاه ه ایتفاوت دیدگاه و عمل تخصیص در جبر رابط
branch–name , customer_name( depositor ∞ account)
branch–name , customer_name( borrower ∞ loan)
:با عمل تخصیص بصورت زیر تعریف می شود جدول
) depositor , account , borrower , loan( ، با تغییرات در جداول r1محتوی جدول . می شود all-customerاما موجب تغییر دیدگاه . تغییر نمی کند
Email:usefirad@gmail.com 69
...ادامه دیدگاه اده ، پایگاه دمی شود دیدگاهی تعریف وقتی
آن ، بجای ذخیره اطالعات و داده های درون . کندذخیره می را تعریف دیدگاه
Email:usefirad@gmail.com 70
36
بخش چهارم پروژه ۵کوئری و ۱۰برای جداول محیط عملیاتی
از با استفاده( دیدگاه به زبان جبر رابطه ای . نوشته شود) عملگرهای اضافی
.از همه عملگر های معرفی شده استفاده شودEmail:usefirad@gmail.com 71