DBMS - Birleştirmeler
İki ilişkinin Kartezyen çarpımını almanın faydalarını anlıyoruz, bu bize birlikte eşleştirilmiş tüm olası tupl'ları verir. Ancak bazı durumlarda, hatırı sayılır sayıda niteliğe sahip binlerce demet ile büyük ilişkilerle karşılaştığımız bir Kartezyen ürünü almak bizim için mümkün olmayabilir.
Joinbir Kartezyen ürünü ve ardından bir seçim sürecinin birleşimidir. Bir Birleştirme işlemi, farklı ilişkilerden iki demeti eşler, ancak ve ancak belirli bir birleştirme koşulu sağlanırsa.
Aşağıdaki bölümlerde çeşitli birleştirme türlerini kısaca açıklayacağız.
Theta (θ) Birleştir
Teta birleştirme, teta koşulunu sağlamaları koşuluyla, farklı ilişkilerden tuple'ları birleştirir. Birleştirme koşulu, sembolü ile gösterilirθ.
Gösterim
R1 ⋈θ R2
R1 ve R2, özniteliklere (A1, A2, .., An) ve (B1, B2, .., Bn) sahip ilişkilerdir, öyle ki özniteliklerin ortak bir yanı yoktur, yani R1 ∩ R2 = Φ.
Theta join, her türlü karşılaştırma işlecini kullanabilir.
Öğrenci | ||
---|---|---|
SID | İsim | Std |
101 | Alex | 10 |
102 | Maria | 11 |
Konular | |
---|---|
Sınıf | Konu |
10 | Matematik |
10 | ingilizce |
11 | Müzik |
11 | Spor Dalları |
Student_Detail -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
Student_detail | ||||
---|---|---|---|---|
SID | İsim | Std | Sınıf | Konu |
101 | Alex | 10 | 10 | Matematik |
101 | Alex | 10 | 10 | ingilizce |
102 | Maria | 11 | 11 | Müzik |
102 | Maria | 11 | 11 | Spor Dalları |
Equijoin
Theta birleştirme yalnızca kullandığında equalitykarşılaştırma operatörü, equijoin olduğu söylenir. Yukarıdaki örnek equijoin'e karşılık gelir.
Doğal Birleştirme ( ⋈ )
Doğal birleştirme herhangi bir karşılaştırma operatörü kullanmaz. Kartezyen bir ürünün yaptığı gibi birleştirmez. Yalnızca iki ilişki arasında var olan en az bir ortak özellik varsa Doğal Birleştirme gerçekleştirebiliriz. Ek olarak, özniteliklerin aynı ada ve alana sahip olması gerekir.
Doğal birleştirme, her iki ilişkideki özniteliklerin değerlerinin aynı olduğu eşleşen özniteliklere etki eder.
Dersler | ||
---|---|---|
CID | Ders | Bölüm |
CS01 | Veri tabanı | CS |
ME01 | Mekanik | BEN Mİ |
EE01 | Elektronik | EE |
HoD | |
---|---|
Bölüm | Kafa |
CS | Alex |
BEN Mİ | Maya |
EE | Mira |
Dersler ⋈ HoD | |||
---|---|---|---|
Bölüm | CID | Ders | Kafa |
CS | CS01 | Veri tabanı | Alex |
BEN Mİ | ME01 | Mekanik | Maya |
EE | EE01 | Elektronik | Mira |
Dış Birleşimler
Theta Join, Equijoin ve Natural Join iç birleşimler olarak adlandırılır. Bir iç birleşim, yalnızca eşleşen özniteliklere sahip tuple'ları içerir ve geri kalanlar ortaya çıkan ilişkide atılır. Bu nedenle, ortaya çıkan ilişkiye katılan ilişkilerden gelen tüm demetleri dahil etmek için dış birleşimleri kullanmamız gerekir. Üç tür dış birleşim vardır - sol dış birleşim, sağ dış birleşim ve tam dış birleşim.
Sol Dış Birleşim (R
S)
Sol ilişkideki tüm tuplelar, ortaya çıkan ilişkiye dahil edilir. Sağ bağıntısında S herhangi bir eşleşen tuple olmadan R'de tuplelar varsa, ortaya çıkan ilişkinin S öznitelikleri NULL yapılır.
Ayrıldı | |
---|---|
Bir | B |
100 | Veri tabanı |
101 | Mekanik |
102 | Elektronik |
Sağ | |
---|---|
Bir | B |
100 | Alex |
102 | Maya |
104 | Mira |
Dersler
|
|||
---|---|---|---|
Bir | B | C | D |
100 | Veri tabanı | 100 | Alex |
101 | Mekanik | --- | --- |
102 | Elektronik | 102 | Maya |
Sağ Dış Birleşim: (R
S)
Sağ bağıntısından gelen tüm tuplelar, ortaya çıkan ilişkiye dahil edilir. S'de R'de eşleşen herhangi bir tuple olmayan tuplelar varsa, sonuçta ortaya çıkan ilişkinin R nitelikleri NULL yapılır.
Dersler
|
|||
---|---|---|---|
Bir | B | C | D |
100 | Veri tabanı | 100 | Alex |
102 | Elektronik | 102 | Maya |
--- | --- | 104 | Mira |
Tam Dış Birleşim: (R
S)
Her iki katılımcı ilişkiden gelen tüm demetler ortaya çıkan ilişkiye dahil edilir. Her iki ilişki için eşleşen tuple yoksa, ilgili eşleşmeyen öznitelikleri NULL yapılır.
Dersler
|
|||
---|---|---|---|
Bir | B | C | D |
100 | Veri tabanı | 100 | Alex |
101 | Mekanik | --- | --- |
102 | Elektronik | 102 | Maya |
--- | --- | 104 | Mira |