Model dan Aljabar Relasional Muhammad Nur Faiz MNF
Model dan Aljabar Relasional Muhammad Nur Faiz (MNF)
RECORD BASED DATA MODEL • Model Hierarkikal • Model Jaringan • Model Relasional
Model Hirarki
Model Jaringan
Model Relasional
Basis Data Relational • Kebanyakan model yang digunakan adalah model basis data relasional dengan menggunakan Relational Database Management System (RDBMS). • RDBMS menyediakan layanan pengorganisasian data yang mudah dan memiliki kemampuan untuk menangani jumlah data yang sangat besar. • Beberapa contoh dari RDBMS diantaranya Oracle, Ms SQL Server, My. SQL, DB 2, Ms Access.
Basis Data Relational (Cont) • Model basis data relational memiliki struktur logic yang disebut dengan relation (relasi). • Struktur relasi merupakan struktur data 2 dimensi, pada level fisik berupa table (tabel). • Attribute merepresentasikan elemen dari data yang berkaitan dengan relasi. Sebagai contoh, relasi Mahasiswa memiliki atribut-atribut seperti nim, nama, tempat lahir. tanggal_ lahir, dan alamat.
Basis Data Relational (Cont)
Pandangan Logika Data • Struktur model basis data relasional dan kebebasan data memungkinkan kita untuk memandang data secara logika daripada secara fisik. • Pandangan secara logika membuat konsep file tentang penyimpanan data menjadi lebih sederhana. • Penggunaan tabel independen secara logic lebih mudah dipahami. • Kesederhanaan logika menghasilkan metodologi perancangan basis data lebih sederhana dan lebih efektif.
Rangkuman Sifat-sifat Tabel Relasional 1 2 Sebuah tabel seolah-olah merupakan struktur dua dimensi yang terdiri dari baris dan kolom. Setiap baris (tupel) mewakili sebuah entitas. 3 Setiap kolom mewakili atribut dan memiliki nama yang jelas. 4 Setiap perpotongan baris dan kolom mewakili nilai sebuah data. Setiap tabel harus memiliki primary key yang dikenali secara unik untuk setiap baris. Semua nilai pada kolom harus sesuai format data. Setiap kolom memiliki jangkauan nilai tertentu yang dikenal sebagai domain atribut. Setiap baris membawa informasi yang menggambar-kan satu kejadian entitas. Urut-urutan baris dan kolom bukan hal yang penting untuk DBMS. 5 6 7 8 9
Nilai Atribut Tabel SISWA
Contoh Sederhana Basis Data Relasional Nama tabel SISWA Primary key NOMHS Foreign key KODE_WALI Hubungan Nama tabel WALI Primary key KODE_WALI Tidak ada foreign key
Skema Basis Data Relasional : PERWALIAN
Bahasa Pada Basis data Relational Menggunakan bahasa query pernyataan yang diajukan untuk mengambil informasi. Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya untuk pengelolaan data. Bahasa query terbagi 2 : 1. Bahasa Formal Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis.
Bahasa Pada Basis data Relational Contoh : • Aljabar Relasional Bahasa query prosedural pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya. • Kalkulus Relasional Bahasa query non-prosedural pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya. Terbagi 2 : 1. Kalkulus Relasional Tupel 2. Kalkulus Relasional Domain
Bahasa Pada Basis data Relational 2. Bahasa Komersial Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). Contoh : • QUEL Berbasis pada bahasa kalkulus relasional • QBE Berbasis pada bahasa kalkulus relasional • SQL Berbasis pada bahasa kalkulus relasional dan aljabar relasional
Aljabar Relasional (Relational Algebra)
Modul • Formal Relational Query Languages • Operasi Dasar: – Unary – Binary
Formal Relational Query Languages • Query Language: digunakan untuk memanipulasi dan memperoleh data dari suatu basisdata relasional • Bentuk matematis: – Relational Algebra: procedural (operational) language – Relational Calculus: declarative (non-operational) language • Contoh riil: SQL (Structured Query Language)
Operasi Dasar • Unary: melibatkan satu buah operand – Selection – Projection • Binary: melibatkan dua buah operand – Union – Intersection – Difference – Cartesian Product
Selection (σ) • Selection Merupakan operasi pemilihan (sekumpulan) baris yang memenuhi suatu kondisi tertentu dari suatu relasi (tabel) • Sintaks: σPredicate (R) – Predicate: kondisi yang ditentukan – R : relasi (tabel)
Selection (σ) (contd-2) Mhs • Soal: Buatlah daftar mahasiswa yang memiliki IPK lebih dari 3. 5! • Query: σ IPK> 3. 5 (Mhs) • Hasil Query: NIM Nama IPK 123 Zilong 2. 9 124 Roger 3. 7 125 Gord 3. 4 126 Gatot 3. 8 127 Lancelot 3. 3 NIM Nama IPK 124 Roger 3. 7 126 Gatot 3. 8
Operasi Selection (cont) • Contoh : dilakukan operasi σjenis=“action”(film) pada relas film sebagai berikut : kode_film jenis judul jml_keping jml_film A 01 action Spiderman 2 3 A 02 action Spiderman 2 2 5 D 01 drama Love Story 2 3 H 01 horor 2 2 Evil Death • Hasilnya : suatu relasi dengan tuple-tuple yang memiliki jenis sama dengan action. kode_film jenis judul jml_keping jml_film A 01 action Spiderman 2 3 A 02 action Spiderman 2 2 5
Projection (Π) • Merupakan operasi pemilihan (sekumpulan) kolom tertentu dari suatu relasi (tabel) • Sintaks: πa 1, a 2, … an (R) – a : attribute (kolom) – R : relasi (tabel)
Projection (Π) (contd-2) • Soal: Buatlah daftar nama dan jumlah sks dari seluruh mhs! • Query: π Nama, jml_sks (Mhs) • Hasil Query: Nama Mhs NIM Nama 01 Prodi Jml_sks Gussion L SI 140 02 Alucard L IF 142 03 Jhonso n L IF 141 04 Layla P RPL 135 Jml_sks Gussion 140 Alucard 142 Jhonson 141 Layla 135 JK
Projection (Π) (contd-3) • Soal: Buatlah daftar nama dan prodi dari mhs yang jumlah sks lebih dari 140! • Query: π Nama, Prodi (σ jml_sks > 140 (Mhs)) • Hasil Query: Nama Prodi Gussion SI Alucard IF Jhonson IF Mhs NIM Nama JK Prodi Jml_ sks 01 Gussion L SI 140 02 Alucard L IF 142 03 Jhonson L IF 141 04 Layla P RPL 135
Operasi Union/Gabungan ( ) • Operasi yang digunakan untuk menggabungkan hasil dari beberapa query. • Notasi : r s, menghasilkan suatu relasi baru yang elemen barisnya merupakan elemen dari r dan s, tidak ada duplikasi data. • Untuk r s harus valid : r, s harus memiliki jumlah atribut yang sama.
Operasi Union/Gabungan (lanj) • Relasi r n Relasi s A B C aa 1 7 aa 5 7 bb 5 7 cc 4 4 bb 12 7 dd 10 7 dd 23 10 aa 6 10 • p. A(r) p. A(s) A aa bb dd cc
Operasi Intersection/Irisan ( ) • Notasi : r s, menghasilkan suatu relasi baru dengan elemen barisnya merupakan elemen yang terdapat pada relasi r dan elemen tersebut juga terdapat pada relasi s, tidak ada duplikasi data. r dan s harus memiliki jumlah atribut yang sama. • Relasi r Relasi s • r s A B a 1 a 2 b 1 A B a 2 b 3
Operasi Set Difference (–) • Notasi r – s, hasilnya relasi yang elemen barisnya terdapat pada r tetapi tidak terdapat di s. r dan s harus memiliki jumlah atribut yang sama. • Relasi r n Relasi s A B C aa 1 7 bb 5 7 cc 5 7 bb 12 7 dd 23 10 aa 23 10 • p. A(r) - p. A(s) A bb
Operasi Cross/Cartesian-Product • Notasi r x s, menghasilkan semua kombinasi baris/tuple dari 2 buah relasi, yaitu relasi r dan s. Jumlah atribut tidak harus sama. Contoh : • Relasi r : maka r x s : • Relasi s : A B C D a 1 a 6 a 1 b 5 a 1 c 12 A B a 1 b 3 C D b 3 a 6 b 3 b 5 b 3 c 12
Komposisi Operasi-Operasi Relasional • Operasi-operasi aljabar relasional dapat digabungkan dengan ekspresi aljabar relasional lainnya. • Contoh : terdapat relasi film sebagai berikut : kode_film jenis judul jml_keping jml_film A 01 action Spiderman 2 3 A 02 action Spiderman 2 2 5 D 01 drama Love Story 2 3 H 01 horor 2 2 Evil Death
Komposisi Operasi-Operasi Relasional • Jika ingin memperoleh relasi baru dengan atribut kode_film, judul dan jml_film dengan jml_film > 3, maka operasi komposisinya sebagai berikut : pkode_film, judul, jml_film(σjml_film > 3(film)) hasilnya : kode_film A 02 judul jml_film Spiderman 2 5
Operasi Join ( ) • Digunakan untuk menggabungkan dua relasi atau lebih dengan hasil berupa gabungan dari kolom-kolom yang berasal dari relasi-relasi tersebut. • Relasi R Relasi S sid sname rating age sid bid day 22 dustin 7 45. 0 22 101 10/10/96 31 lubber 8 55. 5 58 103 11/12/96 58 rusty 10 35. 0
Operasi Join (lanj) • Operasinya : R S sama dengan operasi σ(Rx. S), disebut juga Full Join. • Hasilnya : sid sname rating age sid bid day 22 dustin 7 45. 0 22 101 10/10/96 22 dustin 7 45. 0 58 103 11/12/96 31 lubber 8 55. 5 22 101 10/10/96 31 lubber 8 55. 5 58 103 11/12/96 58 rusty 10 35. 0 22 101 10/10/96 58 rusty 10 35. 0 58 103 11/12/96
Condition Join/Theta Join • Menghasilkan suatu relasi gabungan yang memiliki tupel-tupel sesuai dengan kondisi yang telah ditentukan. • R c. S sama dengan operasi σc(Rx. S), dengan c=condition. • Kondisi join : =, >, <, >=, <= • Relasi R Relasi S sid sname rating age sid bid day 22 dustin 7 45. 0 22 101 10/10/96 31 lubber 8 55. 5 58 103 11/12/96 58 rusty 10 35. 0
Condition Join/Theta Join (lanj) • Operasinya : R ⋈R. sid<S. sid. S • Hasilnya : sid sname rating age sid bid day 22 dustin 7 45. 0 58 103 11/12/96 31 lubber 8 55. 5 58 103 11/12/96 • Kondisi join untuk operator = disebut juga Equi Join.
Operasi Division (/) • Notasi : R/S. • Menghasilkan suatu relasi dari dua buah relasi yang terdiri dari atribut/kolom dari relasi R yang tidak terdapat pada relasi S dengan tupel-tupel dari relasi R yang memiliki kesamaan dengan tupel-tupel yang ada pada relasi A secara keseluruhan dan tidak terdapat duplikasi data.
Operasi Division (lanj) • Relasi R Relasi S 1 Relasi S 2 sno pno s 1 p 2 s 1 p 3 s 1 p 4 s 2 p 1 R/S 1 s 2 p 2 sno s 3 p 2 s 1 s 4 p 2 s 4 p 4 s 3 pno p 2 p 4 s 4 R/S 2 sno s 1 s 4
Operasi SUM, AVERAGE, MIN, MAX, COUNT • SUM – digunakan untuk menghitung jumlah nilai pada suatu kolom. • AVERAGE – digunakan untuk menghitung rata-rata dari suatu kolom. • MIN – digunakan untuk mencari nilai minimal pada suatu kolom. • MAX – digunakan untuk mencari nilai maksimal pada suatu kolom. • COUNT – digunakan untuk menghitung jumlah baris pada suatu kolom.
- Slides: 40