Model Relasional Basis Data Materi Yang Akan Disampaikan Pengertian 3 MODEL DATABASE Istilah dalam Basis Data Relasional Relational Key Di Model Relational Bahasa pada Model Data Relasional Bahasa Query Formal Pengertian Ditemukan olehE.F. Codd. Model Data Relasional adalah suatu model basis data yang menggunakan tabel dua dimensi , yang terdiri atas baris dan kolom untuk menggambarkan sebuah berkas data. Model ini menunjukkan cara mengelola/ mengorganisasikan data secara fisik dalam memory sekunder , yang akan berdampak pula pada bagaimana kita mengelompokkan data dan membentuk keseluruhan data yang terkait dalam sistem yang kita buat. 3 MODEL DATABASE Tiga model database yang cukup dikenal adalah : Model Hierarkikal Model Jaringan Model Relasional Model Hierarkikal Contohnya : Model Jaringan Contohnya : MODEL RELATIONAL Model Relasional merupakan kumpulan tabel berdimensi dua (disebut relasi atau tabel) dengan masing-masing relasi (relations) tersusun atas tuple (baris) dan atribut (kolom) pada suatu basis data. Model Data Relasional menggambarkan data dalam bentuk tabel-tabel. Model Data Relasional mengandung 3 komponen inti : Struktur data, data diorganisasi dalam bentuk tabel-tabel Manipulasi data, menggunakan SQL Integritas data, untuk spesifikasi aturan bisnis Contoh tabel keterhubungan (1) MHS Contoh tabel keterhubungan (2) MKUL . Contoh tabel keterhubungan (3) NILAI Istilah dalam Basis Data Relasional : Relasi: Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Atribut: Kolom pada sebuah relasi Tupel Baris pada sebuah relasi Domain Kumpulan nilai yang valid untuk satu atau lebih atribut Derajat (degree) Jumlah atribut dalam sebuah relasi Cardinality Jumlah tupel dalam sebuah relasi Ilustrasi RELATIONAL KEY DI MODEL RELATIONAL Super key Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi (satu atau lebih field yang dapat dipilih untuk membedakan antara 1 record dengan record lainnya). Contoh: Untuk tabel MHS, super key-nya: NPM NAMA (dengan syarat tidak ada nama yang sama) ALAMAT (dengan syarat tidak ada alamat yang sama) NPM + NAMA NPM + ALAMAT NAMA + ALAMAT NPM + NAMA + ALAMAT Candidate key Atribut di dalam relasi yang biasanya mempunyai nilai unik (super key dengan jumlah field yang paling sedikit) Maka, candidate key-nya adalah NPM, NAMA dan ALAMAT (karena hanya terdiri dari 1 field saja) Primary key Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi Maka, primary key yang dipilih adalah NPM (unik, tidak ada NPM yang sama). Alternate key Candidate key yang tidak dipilih sebagai primary key Maka, candidate key-nya NAMA dan ALAMAT Foreign key Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa Ilustrasi Relational Integrity Rules 1. Null Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk tersebut baris (tuple) 2. Entity Integrity Tidak ada satu komponen primary key yang bernilai null 3. Referential Integrity Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan Contoh Basis Data Relasional Bahasa Pada Basis data Relational terbagi menjadi 2 yaitu: 1. Bahasa Formal Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis Contoh: Aljabar relasional Kalkulus relasional 2. Bahasa Komersial Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). QUEL Berbasis pada bahasa kalkulus relasional QBE Berbasis pada bahasa kalkulus relasional SQL Berbasis pada bahasa kalkulus relasional dan aljabar relasional DB2 IBM ORACLE Oracle SYBASE Powersoft INFORMIX Informix Microsoft Access Microsoft BAHASA QUERY FORMAL ALJABAR RELATIONAL Adalah kumpulan operasi terhadap relasi, dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru OPERATOR YANG DIGUNAKAN A. OPERATOR HIMPUNAN 1. Union atau gabungan ( ) Union dari relasi A dan B dinyatakan sebagai A B 2. Intersection atau irisan ( ) Intersection dari relasi A dan B dinyatakan sebagai A B 3. Difference Difference dari relasi A dan B dinyatakan dengan A – B 4. Cartesian product Product cartesian dari relasi A dan B dinyatakan dengan A X B contoh : A = { 1,2,3} B = { 5,7 } A X B = { ( 1,5), (1,7), ( 2,5), (2,7), (3,5),(3,7) } B. OPERATOR RELATIONAL 1. Restrict ( ) adalah Pemilihan tupel atau record 2. Project ( ) adalah pemilihan attribute atau field 3. Divide ( ) adalah membagi 4. Join ( ) adalah menggabungkan ALJABAR RELASIONAL Operator pada aljabar relationaldibagi menjadi 2 kelompok : 1. Operator dasar untuk fundamental operational 2. Operator tambahan untuk additional operasional Tabel dibawah ini adalah contoh untuk mengerjakan perintah – perintah Relation Algebra: RELASI : MATA KULIAH RELASI MAHASISWA RELASI REGISTRASI RELASI DOSEN OPERATOR DASAR a. Selection ( ) Lower Case Omega Operasi selection menyeleksi tupel-tupel pada sebuah relation yang memenuhi predicate/syarat yang sudah ditentukan Contoh : 1. Mencari tuple-tuple dari MAHASISWA yang memiliki jenis kelamin lakilaki, Ekspresi aljabar relational : σ 2. Tampilkan data mata kuliah yang memiliki kode 360 atau yang memilki sks 4 σ b. J_KEL=“LAKI-LAKI” (MAHASISWA) KD_MK=“306” V SKS=4 (MATAKULIAH) Projection ( ) Operator projection beroperasi pada sebuah relation, yaitu membentuk relation baru dengan mengcopy atribute-atribute dan domain-domain dari relation tersebut berdasarkan argumen-argumen pada operator tersebut. Contoh : 1. Tampilkan nama beserta gaji dari dosen nama_dos,gaji (DOSEN) c. Cartesian product ( X ) Operator dengan dua relasi untuk menghasilkan tabel hasil perkalian kartesian. Contoh : 1. Tampilkan nid,nama_d (dari relasi Dosen), nama_mk (dari relasi Matakuliah), thn_akademik,smt,hari,jam_ke,waktu,kelas (dari relasi Mengajar) dimana semester mengajar adalah pada semester ‘1’. nid, nama_d, nama_mk, thn_akademik,smt, hari,jam_ke, waktu, kelas ( smt=1 Dosen.nid = Mengajar.nid mengajar.kdmk = Matakuliah.kdmk (DosenxMatakuliahxMengajar)) d. Union ( ) Operasi untuk menghasilkan gabungan tabel dengan syarat kedua tabel memiliki atribut yang sama yaitu domain atribut ke-i masing-masing tabel harus sama RUS={ X I X E R atau X E S} Contoh : Penggabungan berdasarkan kolom kota dari tabel mahasiswa dengan tabel dosen kota (mahasiswa) kota (Dosen) e. Set diference ( - ) Operasi untuk mendapatkan tabel dis uatu relasi tapi tidak ada di relasi lainnya. R – S = { X I X E R dan X E S } Contoh : Tampilkan nama dari mahasiswa yang tinggal di depok tetapi bukan berjenis kelamin perempuan Query I : tampilkan nama yang tinggal di depok nama_mhs(alamat=“DEPOK” (MAHASISWA)) Query II : tampilkan nama yang berjenis kelamin perempuan nama_mhs(j_kel =“PEREMPUAN” (MAHASISWA)) Tampilkan query I minus query II : nama_mhs(alamat=“DEPOK”(MAHASISWA))-nama_mhs(j_kel=“PEREMPUAN” (MAHASISWA)) OPERATOR TAMBAHAN 1. SET INTERSECTION ( ) Operasi untuk menghasilkan irisan dua tabel dengan syarat kedua tabel memiliki atribut yang sama, domain atribut ke-i kedua tabel tersebut sama. 2. THETA JOIN Operasi yang menggabungkan operasi cartesian product dengan operasi selection dengan suatu kriteria. 3. NATURAL JOIN Operasi menggabungkan operasi selection dan cartesian product dengan suatu kriteria pada kolom yang sama 4. DIVISION Merupakan operasi pembagian atas tuple-tuple dari 2 relat contoh : A Sno Pno S1 P1 S1 P2 S1 P3 S1 P4 S2 P1 S2 P2 B Pno P2 A/B Sno S1 S2