Aljabar Relasional Lecturer:
Mahendra Data, S.Kom
Aljabar Relasional Utama
R ςc(E) πA1,…,An(E)
Turunan
Relation
Selection Projection
(E1) x (E2)
Cross Product
(E1) ∪ (E2) (E1) - (E2) ρR(A1,..,An)(E)
Union
Difference Rename
(E1) ⋈(E2) (E1) ⋈ϴ(E2) (E1) ∩ (E2)
Natural Join
Theta Join Intersection
R – Relation • Simbol ini merujuk pada tabel relasi beserta data di dalamnya, baik tabel asli maupun tabel hasil modifikasi menggunakan operasi-operasi aljabar relasional
Contoh:
Database Penerimaan Mahasiswa College(cName, state, enrollment) Student(sID, sName, GPA, sizeHS) Apply(sID, cName, major, decision) Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
ς – Select Operator • Disimbulkan dengan huruf Yunani Sigma (ς) • Digunakan untuk menseleksi baris (atau kadang disebut dengan tupple) tertentu sesuai dengan kondisi (c) yang ditentukan.
ς – Select Operator • Student dengan GPA > 3.7 ςGPA>3.7 (Student)
• Student dengan GPA > 3.7 dan HS < 1000 ςGPA>3.7 ᴧ HS < 1000 (Student)
• Pendaftar ke Standford dengan major CS ςcName = “Stanford” ᴧ major < “CS” (Apply) Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
π – Select Operator • Disimbulkan dengan huruf Yunani Phi(π) • Digunakan untuk menseleksi kolom tertentu.
π – Project Operator • Menampilkan nama Univesitas π cName (College)
• Menampilkan sID dan cName pendaftar π sID, cName (Apply)
Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
π dan σ • Dapat digunakan bersamaan untuk mengambil kolom dan baris tertentu dari table relasi
π dan σ • ID dan nama mahasiswa dengan GPA > 3.7 π sID, sName (ς GPA > 3.7 (Student))
• cName dan state Universitas dengan enr > 900 π cName, state (ς enr > 900 (College))
Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
Duplicate Values • Aljabar relational akan secara otomatis menghapus ducpliate values. (Sets) • SQL Langguage tidak menghapus ducpliate values, kecuali diperintahkan. (Multisets) • Contoh ketika menampilkan state dari tabel College : π state(College) Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
x – Cross Product • Disimbulkan dengan tanda x • Digunakan untuk menggabungkan 2 relasi R1
R2
A
B
C
E
F
A1
B1
C1
E1
F1
A2
B2
C2
E2
F2
R1 x R2 A
B
C
E
F
A1
B1
C1
E1
F1
A1
B1
C1
E2
F2
A2
B2
C2
E1
F1
A2
B2
C2
E2
F2
x – Cross Product • Tampilkan nama dan GPA mahasiswa dengan HS > 1000 yang mendaftar ke “CS” dan ditolak π name, GPA (ς Student.sID = Apply.sID ᴧ HS > 1000 ᴧ major = “CS” ᴧ dec = “Rejected” (Student x Apply))
Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
⋈ – Natural Join • Disimbulkan dengan tanda ⋈ • Digunakan untuk menggabungkan 2 relasi dengan menggabungkan kolom yang sama dan salah satu kolom yang sama tersebut akan dihilangkan
R1
R1 ⋈ R2
R2
A
B
C
B
C
D
A
B
C
D
A1
B1
C1
B1
C1
D1
A1
B1
C1
D1
A2
B2
C2
B1
C2
D2
A2
B2
C2
D2
A3
B3
C3
B2
C1
D3
B2
C2
D4
⋈ – Natural Join (E1) ⋈ (E2) ≡ π schema(E1) ∪ schema(E2) (ς E1.A = E2.A ᴧ … ᴧ E1.N = E2.N (E1 x E2))
⋈ – Natural Join R1 ⋈ R1 ≡ π A,B,C,D (ς R1.B = R2.B ᴧ R1.C = R2.C (R1 x R2)) R1
R1 ⋈ R2
R2
A
B
C
B
C
D
A
B
C
D
A1
B1
C1
B1
C1
D1
A1
B1
C1
D1
A2
B2
C2
B1
C2
D2
A2
B2
C2
D2
A3
B3
B3
B2
C1
D3
B2
C2
D4
⋈ – Natural Join • Tampilkan nama dan GPA mahasiswa dengan HS > 1000 yang mendaftar ke “CS” dan ditolak π name, GPA (ς Student.sID = Apply.sID ᴧ HS > 1000 ᴧ major = “CS” ᴧ dec = “Rejected” (Student x Apply)) π name, GPA (ς HS > 1000 ᴧ major = “CS” ᴧ dec = “Rejected” (Student ⋈ Apply)) Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
⋈ϴ – Theta Join • Disimbulkan dengan tanda ⋈ϴ • Digunakan untuk menggabungkan 2 relasi dengan menggabungkan kolom dengan kondisi atau syarat tertentu R1
R1 ⋈R1.B=R2.B R2
R2
A
B
C
B
C
D
A
R1.B R2.B R1.C R2.C
D
A1
B1
C1
B1
C1
D1
A1
B1
B1
C1
C1
D1
A2
B2
C2
B1
C2
D2
A1
B1
B1
C1
C2
D2
A3
B3
B3
B2
C1
D3
A2
B2
B2
C2
C1
D3
B2
C2
D4
A2
B2
B2
C2
C2
D4
⋈ϴ – Theta Join (E1) ⋈ϴ (E2) ≡ ς ϴ (E1 x E2) atau dalam contoh di bawah
R1 ⋈ R1.B = R2.B R1 ≡ ςR1.B = R2.B (R1 x R2) R1
R1 ⋈R1.B=R2.B R2
R2
A
B
C
B
C
D
A
R1.B R2.B R1.C R2.C
D
A1
B1
C1
B1
C1
D1
A1
B1
B1
C1
C1
D1
A2
B2
C2
B1
C2
D2
A1
B1
B1
C1
C2
D2
A3
B3
B3
B2
C1
D3
A2
B2
B2
C2
C1
D3
B2
C2
D4
A2
B2
B2
C2
C2
D4
∪ –Union Operator (E1) ∪ (E2) • Digunakan untuk menggabungkan baris / tupple dari 2 tabel relasi R1
R1 ∪ R2
R2
A
B
C
A
B
C
A
B
C
A1
B1
C1
A3
B3
C3
A1
B1
C1
A2
B2
C2
A4
B4
C4
A2
B2
C2
A3
B3
B3
A5
B5
B5
A3
B3
C3
A4
B4
C4
A5
B5
B5
∪ –Union Operator (π AR1) ∪ (π AR2)
R1
(π AR1) ∪ (π AR2)
R2
A
B
C
A
B
C
A
A1
B1
C1
A3
B3
C3
A1
A2
B2
C2
A4
B4
C4
A2
A3
B3
B3
A5
B5
B5
A3 A4 A5
Different Operator (E1) - (E2) • Digunakan untuk mengurangi baris / tupple dari tabel ke-1 yang sama dengan baris di tabel ke-2 R1
R2
R1 - R2
A
B
C
A
B
C
A
B
C
A1
B1
C1
A3
B3
C3
A1
B1
C1
A2
B2
C2
A4
B4
C4
A2
B2
C2
A3
B3
B3
A5
B5
B5
Different Operator • Tampilkan ID dan nama mahasiswa yang tidak mendaftar di universitas manapun π sID, name((π sID Student - π sID Apply) ⋈ Student)
Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
∩ – Intersection Operator (E1) ∩ (E2) • Digunakan untuk memilih baris / tupple yang sama dari 2 tabel relasi R1
R2
R1 ∩ R2
A
B
C
A
B
C
A
B
C
A1
B1
C1
A3
B3
C3
A3
B3
C3
A2
B2
C2
A4
B4
C4
A3
B3
C3
A5
B5
B5
∩ – Intersection Operator
E1 ∩ E2 ≡ E1 - (E1 - E2) R1
R2
R1 ∩ R2
A
B
C
A
B
C
A
B
C
A1
B1
C1
A3
B3
C3
A3
B3
C3
A2
B2
C2
A4
B4
C4
A3
B3
B3
A5
B5
B5
Union, Different dan Intersection • Operator Union (∪), Different (-) dan Intersection (∩) umumnya digunakan untuk relasi atau tabel yang memiliki schema yang sama. R1 A
B
R2 C
A
B
R3 C
B
A
C
ρ – Rename Operator • Digunakan untuk mengganti nama atribut / kolom suatu schema • Seringkali digunakan untuk operasi union, different, intersection dan “self-joins”
Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
ρ – Rename Operator • Menampilkan list yang berisi daftar nama mahasiswa dan nama kampus ρc(name)(πcName College) ∪ ρc(name)(πsName Student)
Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
ρ – Rename Operator • Menghilangkan keambiguan pada operasi “self-joins”, contoh : Tampilkan college yang berada dalam state yang sama ςn1<>n2( ρc1(n1,s,e1) (College) ⋈ ρc2(n2,s,e2) (College) )
Student
College cName state
enr
sID
sName GPA
Apply HS
sID
cName major
dec
Ada pertanyaan?
Sekian
Daftar Pustaka • http://openclassroom.stanford.edu/MainFold er/CoursePage.php?course=IntroToDatabases