Sistem Basis Data Konsep Database Relasional Ika Menarianti
Relational Database Management Systems (RDBMS) Didefinisikan sebagai suatu himpunan relasi Data secara logika, dianggap sebagai tabel. Tabel adalah struktur data logis yang diasumsikan dengan menyimpan data yang direpresentasikan oleh database. Tabel bukan struktur fisik dan setiap tabel punya nama unik. Tabel memuat sejumlah kolom atau atribut yang sudah ditentukan. Jumlah total kolom disebut derajat (degree). Data dalam tabel disebut himpunan baris atau n-tuple dengan n adalah jumlah atribut tabel.
Seluruh baris dalam sebuah tabel memilliki format yang sama dan merepresentasikan beberapa objek tertentu atau hubungan yang ada pada dunia nyata. Jumlah total baris dalam tabel pada suatu waktu tertentu disebut kardinalitas tabel. Kata field dan record digunakan sebagai sinonim untuk kata atribut dan baris. Nama atribut atau Kolom A1 A2 A3 ...An a11 a12 .... a1n an1 an2 ann Nilai baris atau tupel
Isi sebuah tabel dalam suatu tertentu adalah snapshot. Tabel tanpa baris disebut tabel kosong. Proses menyelipkan tupel untuk pertama kalinya disebut mempopulasikan tabel. Setiap kolom dari sebuah tabel terdapat satu himpunan kemungkinan nilai yang disebut domain. Domain memuat seluruh nilai yang diperbolehkan yang dapat muncul didalam kolom. Domain dinotasikan dari setiap kolom tertentu disebut DOM(nama kolom)
Contoh 1 Diketahui relasi EMPLOYEE, tentukan derajat dan kardinalitasnya. Untuk atribut tentukan domainnya! Id Last_Name First_Name Department Salary 5552 Martin Nicholas Accounting 55000 3971 Bernad Ben Marketing 33500 9078 Adams Larry Human Resources 37500 Terdapat 5 atribut: Id, Last_Name, First_Name, Department dan Salary. Domain yang mungkin adalah: Dom(Id), Dom(Last_Name), Dom(First_Name), Dom(Department) dan Dom(Salary).
Contoh 2 Untuk relasi CUSTOMER ORDER dibawah ini, manakah nilai individual t(A) jika t merupakan sembarang tupel dari A adalah sembarang relasi? ID Date_Ordered Date_Shipped Payment_type 1 08/11/1999 08/12/1999 Cash 2 Purchase order 3 08/14/1999 08/15/1999 credit Jika: t sebagai tupel pertama, maka t(ID)=1, t(Date_Ordered)=08/11/1999, t(Date_Shipped)=08/12/1999 dan t(payement_type)= cash. t sebagai tupel kedua, maka t(ID)=2, t(Date_Ordered)=08/12/1999, t(Date_Shipped)=08/12/1999 dan t(payement_type)= purchase order. Dimana setiap tupel memiliki 4 entri, satu entri untuk setiap kolom.
Kesimpulan Bilamana sebuah relasi direpresentasikan ke dalam tabel, maka berlaku kondisi: Tabel memiliki nama yag unik Setiap kolom ditabel memiliki sebuah nama yang unik Urutan kolom dalam tabel boleh menyimpang (irelevan) Seluruh baris di dalam tabel memiliki format dan jumlah entri yang sama Nilai dalam setiap kolom adalah milik domain yang sama Setiap entri disetiap tupel relasi harus berupa satu nilai tunggal (single value) Urutan baris menjadi irelevan karena diidentifikasikan oleh isinya dan bukan oleh posisinya didalam tabel. Tidak ada dua baris atau tupel yang keseluruhan entrinya identik
Definisi Matematis dari Relasi Diketahui sebuah himpunan berhingga dari atribut A1, A2, A3, ... An, disebut skema relasional R yang merupakan himpunan yang terbentuk dari seluruh atribut. Bahwa R={A1, A2, A3, ... An}, terdapat sebuah himpunan yang tidak kosong Di, (1 ≤ i ≤ n) yang sebut Domain atribut Di dinotasikan sebagai Dom(A). Anggap D sebagai himpunan baru yang didefinisikan sebagai gabungan dari seluruh domain atribut, 𝐷=𝐷 1 ∪ 𝐷 2 … ∪𝐷 𝑛 . Didefinisikan relasi r dalam skema relasional R untuk pemetaan {t1, t2, ... tk}, maka t 𝐴 𝑖 ∈𝐷𝑜𝑚(𝐴)
Operator Relasional Operator relasional sebagai himpunan operator yang memungkinkan untuk memanipulasi database. Operator relasional dikatakan memenuhi sifat penutup (closure property) karena dioperasikan terhadap satu atau lebih relasi untuk menghasilkan relasi-relasi baru.
Simbol operator operasional Untuk menggunakan operator operasional digunakan: Simbol logika: ∃ (𝑡𝑒𝑟𝑑𝑎𝑝𝑎𝑡) ∀ (𝑢𝑛𝑡𝑢𝑘 𝑠𝑒𝑚𝑢𝑎) ∨ 𝑎𝑡𝑎𝑢 ∧ 𝑑𝑎𝑛 ∼(𝑏𝑢𝑘𝑎𝑛) Simbol teori himpunan: ∈ 𝑎𝑛𝑔𝑔𝑜𝑡𝑎 𝑑𝑎𝑟𝑖 , ⊂ ℎ𝑖𝑚𝑝𝑢𝑛𝑎𝑛 𝑏𝑎𝑔𝑖𝑎𝑛 𝑑𝑎𝑟𝑖 , ∅ (ℎ𝑖𝑚𝑝𝑢𝑛𝑎𝑛 𝑘𝑜𝑠𝑜𝑛𝑔) ∋𝑎𝑡𝑎𝑢 / (𝑠𝑒𝑑𝑒𝑚𝑖𝑘𝑖𝑎𝑛 𝑠𝑒ℎ𝑖𝑛𝑔𝑔𝑎) Simbol negasi: ∉(𝑏𝑢𝑘𝑎𝑛 𝑎𝑛𝑔𝑔𝑜𝑡𝑎 𝑑𝑎𝑟𝑖)
Operator Selection Anggap r adalah relasi dalam skema R, A adalah atribut tertentu dari r, dan elemen utama a dari Dom(A). Selection dari r dalam atribut A untuk elemen tertentu a adalah himpunan tupel t dari relasi r sehingga t(A)=a. Selection dari r dalam A dinotasikan dengan 𝜎 𝐴 =a r . Secara matematis: 𝜎 𝐴=𝑎 𝑟 = 𝑡 ∈ 𝑟 𝑡 =𝑎
Contoh 𝜎 𝐸𝑀𝑃_𝐷𝐸𝑃𝑇=10 (𝐸𝑀𝑃𝐿𝑂𝑌𝐸𝐸) Diketahui relasi EMPLOYEE , carilah seluruh informasi dari tabel yang bekerja untuk department 10. EMP_ID EMP_NAME EMP_MGR TITLE EMP_DEPT 1234 Green President 40 4567 Gilmore Senior VP 1045 Rose` Director 10 9876 Smith Acountant 𝜎 𝐸𝑀𝑃_𝐷𝐸𝑃𝑇=10 (𝐸𝑀𝑃𝐿𝑂𝑌𝐸𝐸) EMP_ID EMP_NAME EMP_MGR TITLE EMP_DEPT 1045 Rose` 4567 Director 10 9876 Smith Acountant
Operator Projection Projection dari relasi r terhadap suatu himpunan X dari atributnya, dinotasikan dengan 𝜋 𝑥 𝑟 , didapatkan dengan cara mengeliminasi kolom r yang tidak ditandai dengan X kemudian membuang setiap tupel yang terduplikasi. Anggaplah r sebagai sebuah relasi dengan skema relasional R dan anggap X= {A1, A2, ... Ak}, sebagai sebuah subhimpunan dari atributnya maka: 𝜋 𝑥 𝑟 = 𝑡(𝑋) 𝑡 ∈𝑟
Contoh Dengan tabel DEPARTMENT, dimanakah lokasi department yang berbeda? ID NAME LOCATION 10 Accounting New York 30 Computing 50 Marketing Los Angeles 60 Manufacturing Miami 90 Sales akan menentukan nilai yang berbeda dari kolom LOCATION, maka perlu mencari projection dari tabel DEPARTMENT dalam atribut LOCATION 𝜋 𝐿𝑂𝐶𝐴𝑇𝐼𝑂𝑁 (𝐷𝐸𝑃𝐴𝑅𝑇𝑀𝐸𝑁𝑇) LOCATION New York Los Angeles Miami
Dapatkah menyebutkan jumlah lokasi setelah dieliminasi? Jawab: tidak, karena jumlah lokasi telah dieliminasi Tentukan nama dan lokasi yang berbeda dari tabel DEPARTMENT! NAME LOCATION Accounting New York Computing Marketing Los Angeles Manufacturing Miami Sales
Operator Equijoin Operator biner untuk mengkombinasikan dua relasi yang tidak perlu berbeda. Join memuat seluruh tupel yang dihasilkan dari perangkaian tupel relasi pertama dengan tupel relasi kedua yang memiliki nilai identik untuk sebuah himpunan atribut X.
𝒓 𝑱𝒐𝒊𝒏 𝒔= 𝒓𝒔 𝒔 ∈𝒓 𝒅𝒂𝒏 𝒔 𝒅𝒂𝒏 𝒓 𝑹∩𝑺 =𝒔(𝑹∩𝑺) Anggap r adalah sebuah relasi himpunan atribut R dan s adalah relasi lain dari himpunan S. R dan S memiliki beberapa atribut umum dan anggaplah X sebagai himpunan dari atribut umum. 𝑅∩𝑆=𝑋. Join antara r dan s, dinotasikan dengan 𝒓 𝑱𝒐𝒊𝒏 𝒔. Secara matematis: 𝒓 𝑱𝒐𝒊𝒏 𝒔= 𝒓𝒔 𝒔 ∈𝒓 𝒅𝒂𝒏 𝒔 𝒅𝒂𝒏 𝒓 𝑹∩𝑺 =𝒔(𝑹∩𝑺)
Contoh Joinkan tabel DEPARTMENT dan tabel EMPLOYEE. Tulis Kemungkinan query user yang dapat dipenuhi! Dapatkah kedua tabel dijoinkan? ID NAME LOCATION 100 Accounting Miami 200 Marketing New York 300 Sales DEPARTMENT ID NAME DEPT TITLE 100 Smith Sales Clerk 200 Jones Marketing 300 Martin Acounting 400 Bell Sr. Accountant EMPLOYEE
𝐷𝐸𝑃𝐴𝑅𝑇𝑀𝐸𝑁𝑇 𝐽𝑜𝑖𝑛 𝐸𝑀𝑃𝐿𝑂𝑌𝐸𝐸. Jawab Join untuk kedua tabel dinotasikan 𝐷𝐸𝑃𝐴𝑅𝑇𝑀𝐸𝑁𝑇 𝐽𝑜𝑖𝑛 𝐸𝑀𝑃𝐿𝑂𝑌𝐸𝐸. DEPT ID DEPARTMENT NAME LOCATION EMPLOYEE ID EMPLOYEE NAME TITLE 100 Accounting Miami 300 Martin Clerk 400 Bell Sr. Accountant 200 Marketing New York Jones Sales Smith Tidak dapat dijoinkan, karena atribut ID nya berbeda
Operasi Himpunan dalam Relasi Operasinya adalah: Union (gabungan) Intersection (irisan) Difference (selisih) Perkalian Cartesius
UNION ( GABUNGAN) Diketahui dua relasi r(R) dan s(S), dinotasikan dengan 𝑟∪𝑠, adalah himpunan seluruh tupel yang ada di r atau di s. Didefinisikan: 𝑟∪𝑠= 𝑡 𝑡 ∈𝑟 ∨𝑡 ∈𝑠
contoh Diketahui relasi-relasi dibawah ini, carilah union dari kedua relasi! C_PROGRAMMER Emp_id Last_Name First_Name Project Department 102 Venable Mark E-Commerce Sales Department 201 Cordani John Firewall Information Tecnology 302 Serrano Areant JAVA_PROGRAMMER Emp_id Last_Name First_Name Project Department 202 Barnes James Web Application Information Tecnology 302 Serrano Areant E-Commerce Sales Department
jawab 𝐶 𝑃𝑅𝑂𝐺𝑅𝐴𝑀𝑀𝐸𝑅 ∪𝐽𝐴𝑉 𝐴 𝑃𝑅𝑂𝐺𝑅𝐴𝑀𝑀𝐸𝑅 Emp_id Last_Name First_Name Project Department 102 Venable Mark E-Commerce Sales Department 201 Cordani John Firewall Information Tecnology 202 Barnes James Web Application 302 Serrano Areant
INTERSECTION (IRISAN) Diketahui dua buah relasi r(R) dan s(S), dinotasikan dengan 𝑟∩𝑠, adalah himpunan tupel yang ada dikedua relasi. Didefinisikan: 𝑟∩𝑠= 𝑡 𝑡∈𝑟∧𝑡∈𝑠
Contoh Diketahui dari tabel sebelumnya, carilah irisan dari relasi yang telah diketahui. Jawab: 𝐶 𝑃𝑅𝑂𝐺𝑅𝐴𝑀𝑀𝐸𝑅 ∩𝐽𝐴𝑉 𝐴 𝑃𝑅𝑂𝐺𝑅𝐴𝑀𝑀𝐸𝑅 Emp_id Last_Name First_Name Project Department 302 Serrano Areant E-Commerce Sales Department
DIFFERENCE (SELISIH) Diketahui dua buah relasi r(R) dan s(S), dinotasikan dengan 𝑟−𝑠, adalah himpunan tupel yang ada di r dan tidak ada di s. Didefinisikan: 𝑟−𝑠= 𝑡 𝑡∈𝑟∧𝑡∈𝑠
Contoh Carilah selisih relasi C_PROGRAMMER – JAVA_PROGRAMMER dan JAVA_PROGRAMMER - C_PROGRAMMER ! a). C_PROGRAMMER – JAVA_PROGRAMMER Emp_id Last_Name First_Name Project Department 102 Venable Mark E-Commerce Sales Department 201 Cordani John Firewall Information Tecnology b). JAVA_PROGRAMMER - C_PROGRAMMER Emp_id Last_Name First_Name Project Department 202 Barnes James Web Application Information Tecnology
PERKALIAN CARTESIUS Diketahui dua buah relasi tidak kosong r(R) dan s(S), dinotasikan dengan 𝑟⊗𝑠, adalah relasi yang tupelnya terbentuk dari perangkaian tupel relasi di r dan di s. Didefinisikan: 𝑟⊗𝑠= 𝑡 𝑡∈𝑟∧𝑡∈𝑠
Contoh Hasil relasi memperlihatkan: 5 atribut = 2(BUYER) + 3(PRODUCT) Diketahui relasi dibawah ini, carilah perkalian cartesius untuk kedua relasi! BUYER PRODUCT Id_Number Item 100 A 234 B 543 C Code Name Price A Bike 250 B Spikes 90 C Goggles 15 D Gloves 35 Hasil relasi memperlihatkan: 5 atribut = 2(BUYER) + 3(PRODUCT) 12 tupel = 3(BUYER) * 4(PRODUCT)
jawab Id_Number Item Code Name Price 100 A Bike 250 B Spikes 90 C Goggles 15 D Gloves 35 234 543
Operasi manipulasi dalam relasi Beberapa operasi umum yang banyak diterapkan terhadap relasi yang memungkinkan operasi-operasi saling bergantian adalah: Insert Update Delete
Insert Untuk menyisipkan tupel kedalam tabel. Format operasi INSERT adalah: 𝑰𝑵𝑺𝑬𝑹𝑻 𝑰𝑵𝑻𝑶 𝒏𝒂𝒎𝒂 𝒓𝒆𝒍𝒂𝒔𝒊 ( 𝑨 𝟏 = 𝑽 𝟏 , 𝑨 𝟐 = 𝑽 𝟐 , 𝑨 𝟑 = 𝑽 𝟑, … 𝑨 𝒏 = 𝑽 𝒏 ) Nilai v adalah kepunyaan domain atribut A. Operasi Insert bisa gagal karena: Nilai yang diberikan bukan kepunyaan domain dari kolom yang berhubunga dengannya. Tupel yang diisikan tidak memiliki jumlah entri yang sesuai Nilai key ada yang duplikasi Nilai yang dimasukkan ke dalam tabel merupakan nilai duplikasi Nama relasinya tidak ada dalam database.
delete Untuk menghapus tupel dari dalam tabel. Format delete: 𝑫𝑬𝑳𝑬𝑻𝑬 𝑭𝑹𝑶𝑴 𝒏𝒂𝒎𝒂_𝒓𝒆𝒍𝒂𝒔𝒊 𝑾𝑯𝑬𝑹𝑬 𝒌𝒐𝒏𝒅𝒊𝒔𝒊_𝒑𝒆𝒏𝒄𝒂𝒓𝒊𝒂𝒏 Operasi delete gagal jika: Tupel yang di indikasikan sudah tidak ada dalam relasi Tupel yang dihapus bersifat foreign key Relasinya tidak ada atau tupel tidak sesuia dengan skema
Update Untuk mengubah nilai dari suatu atribut. Format update: 𝑈𝑃𝐷𝐴𝑇𝐸 𝑛𝑎𝑚𝑎 𝑡𝑎𝑏𝑒𝑙 𝑆𝐸𝑇 𝑛𝑎𝑚𝑎 𝑘𝑜𝑙𝑜𝑚 =𝑛𝑖𝑙𝑎𝑖 𝑏𝑎𝑟𝑢 𝑊𝐻𝐸𝑅𝐸 𝑘𝑜𝑛𝑑𝑖𝑠𝑖 𝑝𝑒𝑛𝑐𝑎𝑟𝑖𝑎𝑛