سلام به همه پی وی لرنی های عزیز!
به دوره آموزش دوره آموزش سیستم مدیریت پایگاه داده DBMS خوش آمدید.
Database Management System یا سیستم مدیریت پایگاه داده که به صورت خلاصه به آن DBMS می گویند؛ به فناوری ذخیره و بازیابی اطلاعات کاربران با حداکثر کارآیی در کنار اقدامات امنیتی مناسب اشاره دارد. در این آموزش اصول اولیه سیستم مدیریت پایگاه داده یا DBMS مانند معماری آن، مدل های داده، طرحواره داده ها، استقلال داده ها، مدل E-R، مدل رابطه، طراحی بانک اطلاعاتی رابطه ای، و ذخیره سازی و ساختار پرونده و موارد دیگر را می آموزیم.
در جلسه گذشته مفهوم عادی سازی Normalization را در DBMS شناختیم؛ اگر طراحی پایگاه داده کامل نباشد، ممکن است حاوی ناهنجاری هایی باشد که ممکن است دردسرهای زیادی ایجاد نماید و مدیریت پایگاه داده با وجود این ناهنجاری ها غیر ممکن است.
در این جلسه قرار است به آشنایی با Joins در سیستم مدیریت پایگاه داده ( DBMS ) می پردازیم.
ما از مزایای استفاده از Cartesian product دو رابطه ای تاکنون آگاه شده ایم. Cartesian product امکان جفت شدن دو رابطه یا relations را می دهد. اما ممکن است در موارد خاص این امکان پذیر نباشد که یک Cartesian product را تهیه کنیم و در آنجا با هزاران tuples که دارای تعداد زیادی attributes هستند و با تعداد بی پایانی رابطه relations روبرو شویم.
در این گونه موارد بهترین گزینه انتخاب گزینه Join است. Join ترکیبی از یک Cartesian product است و به دنبال آن یک فرایند انتخاب انجام می شود. در صورتي كه شرط پيوستن معين تأیید شود، يكي از عملكردها دو جفت tuples از روابط مختلف را جفت مي كند.
انواع مختلف پیوستگی را در بخش های بعدی به طور خلاصه شرح خواهیم داد.
Theta (θ) Join ترکیبی از روابط مختلف است به شرط آنکه شرایط تتا راضی نماید. شرط پیوستن توسط نماد θ مشخص شده است.
1 | R1 ⋈θ R2 |
R1 و R2 روابطی هستند که دارای attributes های (A1 ، A2 ، .. ، An) و (B1 ، B2 ، .. ، Bn) هستند به طوری که این attributes هیچ ارتباطی با یکدیگر ندارند ، یعنی R1 ∩ R2 = Φ.
Theta join می تواند از انواع عملگرهای مقایسه استفاده کند.
Student | ||
---|---|---|
SID | Name | Std |
۱۰۱ | Alex | ۱۰ |
۱۰۲ | Maria | ۱۱ |
Subjects | |
---|---|
Class | Subject |
۱۰ | Math |
۱۰ | English |
۱۱ | Music |
۱۱ | Sports |
− Student_Detail
1 | STUDENT ⋈Student.Std = Subject.Class SUBJECT |
Student_detail | ||||
---|---|---|---|---|
SID | Name | Std | Class | Subject |
۱۰۱ | Alex | ۱۰ | ۱۰ | Math |
۱۰۱ | Alex | ۱۰ | ۱۰ | English |
۱۰۲ | Maria | ۱۱ | ۱۱ | Music |
۱۰۲ | Maria | ۱۱ | ۱۱ | Sports |
مبحث بعدی ای که قرار است در آشنایی با Joins در سیستم مدیریت پایگاه داده به آن بپردازیم؛ اعتدال یا equijoin است.
هنگامی که Theta join تنها از عملگر مقایسه برابری استفاده می کند، گفته می شود که دارای اعتدال یا equijoin است. مثال بالا مربوط به equijoin یا اعتدال است.
Natural Join از هیچ عملگر مقایسه ای استفاده نمی کند. این راهی که یک Cartesian product انجام می دهد نتیجه نمی گیرد. ما می توانیم Natural Join را فقط در صورت وجود حداقل یک attribute مشترک که بین دو روابط وجود دارد، انجام دهیم. علاوه بر این، attribute ها باید دارای همان نام و دامنه باشند.
Natural Join به آن دسته از attributes هایی منطبق عمل می کند که در آن ارزش attributes در هر دو رابطه یکسان باشد.
Courses | ||
---|---|---|
CID | Course | Dept |
CS01 | Database | CS |
ME01 | Mechanics | ME |
EE01 | Electronics | EE |
HoD | |
---|---|
Dept | Head |
CS | Alex |
ME | Maya |
EE | Mira |
Courses ⋈ HoD | |||
---|---|---|---|
Dept | CID | Course | Head |
CS | CS01 | Database | Alex |
ME | ME01 | Mechanics | Maya |
EE | EE01 | Electronics | Mira |
Theta Join ، Equijoin ، و Natural Join (پیوستگی درونی) نامیده می شوند. پیوستگی درونی فقط شامل آن دسته از صفحات با attributes های منطبق است و بقیه در نتیجه حاصل شده دور می شوند. بنابراین، ما باید از پیوستگی بیرونی یا Outer Joins استفاده کنیم تا تمام روابط مربوط به مشارکت در رابطه نتیجه گنجانده شود. سه نوع پیوستگی بیرونی وجود دارد – پیوستگی بیرونی سمت چپ، پیوستگی بیرونی راست و پیوستگی بیرونی کامل.
تمام مقادیر مربوط به رابطه چپ، R، در رابطه نتیجه گنجانده شده است. اگر در R مناسب باشد، هیچ رابطه ای در رابطه R وجود ندارد، سپس attribute مربوط به S از نتیجه حاصل شده را NULL می کند.
Left | |
---|---|
A | B |
۱۰۰ | Database |
۱۰۱ | Mechanics |
۱۰۲ | Electronics |
Right | |
---|---|
A | B |
۱۰۰ | Alex |
۱۰۲ | Maya |
۱۰۴ | Mira |
Courses HoD | |||
---|---|---|---|
A | B | C | D |
۱۰۰ | Database | ۱۰۰ | Alex |
۱۰۱ | Mechanics | — | — |
۱۰۲ | Electronics | ۱۰۲ | Maya |
در تمام مقادیر مربوط به رابطه راست؛ S در رابطه نتیجه گنجانده شده است. اگر در S بدون هیچ tuple تطبیقی در S وجود داشته باشد attribute مربوط به R رابطه حاصل شده را NULL می کند.
Courses HoD | |||
---|---|---|---|
A | B | C | D |
۱۰۰ | Database | ۱۰۰ | Alex |
۱۰۲ | Electronics | ۱۰۲ | Maya |
— | — | ۱۰۴ | Mira |
و در نهایت در آخرین بخش از آشنایی با Joins در سیستم مدیریت پایگاه داده بیایید با پیوستگی بیرونی کامل آشنا شویم.
تمام tuples های مربوط به روابط هر دو شرکت کننده در رابطه نتیجه گنجانده می شود. اگر برای هر دو رابطه tuples تطبیقی وجود نداشته باشد، attributes های غیرقابل مقایسه آنها را NULL می کند.
Courses HoD | |||
---|---|---|---|
A | B | C | D |
۱۰۰ | Database | ۱۰۰ | Alex |
۱۰۱ | Mechanics | — | — |
۱۰۲ | Electronics | ۱۰۲ | Maya |
— | — | ۱۰۴ | Mira |
در این جلسه به آشنایی با Joins در سیستم مدیریت پایگاه داده پرداختیم؛ Join ترکیبی از یک Cartesian product است و به دنبال آن یک فرایند انتخاب انجام می شود. در صورتي كه شرط پيوستن معين تأیید شود، يكي از عملكردها دو جفت tuples از روابط مختلف را جفت مي كند.
در جلسه بعدی به سیستم ذخیره سازی در DBMS می پردازیم.
با پی وی لرن همراه باشید.