Makalah Perancangan ERD & LRS Pada Sistem Pemesanan HotelMuhammad Iqbal
Makalah ini membahas perancangan Entity Relationship Diagram (ERD) dan Logical Relational Structure (LRS) untuk sistem pemesanan kamar hotel. Terdapat penjelasan tentang database, ERD, dan LRS. Kemudian dilakukan analisis kasus pemesanan kamar hotel untuk merancang ERD dan LRSnya.
Dokumen tersebut membahas tentang bahasa query formal basis data relasional yaitu SQL dan aljabar relasional. Aljabar relasional merupakan kumpulan operasi yang diterapkan pada relasi untuk menghasilkan relasi baru, meliputi seleksi, proyeksi, produk kartesian, penyatuan, perbedaan himpunan, penamaan ulang, irisan himpunan, join, outer join, dan pembagian.
Dokumen tersebut merangkum hasil analisis kebutuhan sistem perpustakaan universitas. Analisis mencakup kebutuhan fungsional dan non fungsional sistem serta metode pengumpulan data seperti wawancara, observasi, kuesioner.
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
Makalah ini membahas tentang struktur data stack dengan operasi push dan pop, pendeklarasian stack, skema traversal dan search pada stack, operasi dan fungsi dasar seperti create, isempty, push dan pop, deklarasi stack pada bahasa pemrograman, penggunaan stack, operasi logika pada stack, dan contoh aplikasi stack pada pemrograman pascal."
Makalah Perancangan ERD & LRS Pada Sistem Pemesanan HotelMuhammad Iqbal
Makalah ini membahas perancangan Entity Relationship Diagram (ERD) dan Logical Relational Structure (LRS) untuk sistem pemesanan kamar hotel. Terdapat penjelasan tentang database, ERD, dan LRS. Kemudian dilakukan analisis kasus pemesanan kamar hotel untuk merancang ERD dan LRSnya.
Dokumen tersebut membahas tentang bahasa query formal basis data relasional yaitu SQL dan aljabar relasional. Aljabar relasional merupakan kumpulan operasi yang diterapkan pada relasi untuk menghasilkan relasi baru, meliputi seleksi, proyeksi, produk kartesian, penyatuan, perbedaan himpunan, penamaan ulang, irisan himpunan, join, outer join, dan pembagian.
Dokumen tersebut merangkum hasil analisis kebutuhan sistem perpustakaan universitas. Analisis mencakup kebutuhan fungsional dan non fungsional sistem serta metode pengumpulan data seperti wawancara, observasi, kuesioner.
Dokumen tersebut membahas tentang definisi dialog antara manusia dan komputer serta berbagai jenis ragam dialog interaktif seperti dialog berbasis perintah, dialog berbasis bahasa pemrograman, dialog berbasis bahasa alami, dialog berbasis menu dan formulir, serta dialog berbasis manipulasi langsung dan antarmuka grafis.
Makalah ini membahas tentang struktur data stack dengan operasi push dan pop, pendeklarasian stack, skema traversal dan search pada stack, operasi dan fungsi dasar seperti create, isempty, push dan pop, deklarasi stack pada bahasa pemrograman, penggunaan stack, operasi logika pada stack, dan contoh aplikasi stack pada pemrograman pascal."
Makalah ini membahas tentang implementasi queue dengan bahasa pemrograman Pascal. Queue merupakan struktur data yang mengimplementasikan prinsip antrian First In First Out (FIFO). Makalah ini menjelaskan definisi dan gambaran umum queue, macam-macam queue, representasi queue secara statis menggunakan array dan representasi secara dinamis menggunakan linked list tunggal dan ganda. Juga dibahas queue berprioritas beserta contoh kode program untuk masing-masing implementasi queue.
Kode antara / Intermediate code merupakan hasil dari tahapan analisis, yang dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi
Deadlock terjadi ketika dua atau lebih proses saling menunggu sumber daya masing-masing untuk waktu yang tidak terbatas. Ada beberapa penyebab deadlock seperti eksklusivitas bersama, hold and wait, tidak dapat diputus, dan menunggu sirkular. Sistem dapat mencegah, menghindari, atau mendeteksi dan memulihkan dari deadlock dengan memeriksa permintaan sumber daya untuk menghindari kondisi tidak aman.
ERD sistem peminjaman buku perpustakaan digunakan untuk memodelkan struktur data dan hubungan antara entitas-entitas yang terlibat dalam sistem tersebut, seperti Buku, Peminjam, dan Peminjaman. ERD memberikan gambaran tentang data apa yang dibutuhkan dan bagaimana data saling berhubungan.
Dokumen tersebut membahas tentang perancangan basis data untuk sistem pemesanan tiket pesawat secara online, dengan menjelaskan latar belakang, tujuan, metode penelitian yang digunakan yaitu studi pustaka, konsep dasar database, entity relation diagram, logical record storage, pembahasan tentang ERD, transformasi ERD ke LRS, spesifikasi tabel, form dan laporan, serta kesimpulan dan saran.
Dokumen ini membahas tiga algoritma utama pencarian data dalam array: sequential search, binary search, dan interpolation search. Sequential search membandingkan data secara berurut dari awal hingga akhir array. Binary search membagi ruang pencarian menjadi setengah pada setiap iterasi. Interpolation search mencari posisi estimasi berikutnya tempat data dicari berada. Dokumen ini juga berisi contoh kode dan penjelasan alur kerja dari ketiga algoritma tersebut.
Makalah ini membahas tentang algoritma stack. Terdapat penjelasan mengenai pengertian stack, definisi stack, deklarasi stack, dan operasi-operasi dasar pada stack seperti inisialisasi, push, pop, size, empty, dan full. Contoh pemakaian stack untuk membalik kalimat juga dijelaskan.
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)difa febri
Subquery digunakan untuk menyeleksi data dari query lain (main query) berdasarkan hasil query tersebut. Kasus yang diberikan melibatkan tabel sekolah, akreditasi, peringkat, dan hubungan antar tabel, serta contoh penggunaan insert, update, delete, select, join, dan subquery untuk mengolah data tabel tersebut.
Dokumen tersebut membahas struktur data dan algoritma. Struktur data adalah pengaturan data di memori untuk meningkatkan efisiensi akses data, seperti array, list, antrian, tumpukan dan pohon biner. Algoritma adalah langkah untuk memanipulasi data dengan struktur dasar sekuensial, seleksi dan pengulangan. Contoh penerapan struktur data untuk data pasien klinik diberikan.
Makalah ini membahas perancangan database sistem informasi penjualan untuk Indomaret dengan menggunakan Conceptual Data Model (CDM), Physical Data Model (PDM), dan Kamus Data (KD). CDM dan PDM digunakan untuk merancang struktur database secara konseptual dan fisik, sedangkan KD digunakan untuk mendefinisikan elemen-elemen data yang terkandung dalam sistem informasi tersebut."
Dokumen tersebut membahas tentang proses perancangan diagram entity-relationship (E-R) yang meliputi notasi dasar seperti entitas, atribut, relasi, dan garis penghubung serta kardinalitas hubungan satu banding satu, satu banding banyak, dan banyak banding banyak.
Perancangan berorientasi objek melibatkan perancangan kelas objek dan hubungannya. Sistem terdiri dari objek-objek yang berinteraksi dengan menyediakan layanan dan bertukar informasi. Proses perancangan meliputi analisis, pengembangan model, dan pemrograman berorientasi objek.
Dokumen tersebut membahas tentang GUI (Graphical User Interface) dalam bahasa pemrograman Java. Terdapat tiga API GUI utama yaitu AWT, Swing, dan JavaFX. Swing merupakan toolkit GUI ringan yang menyertakan widget dan memungkinkan pembuatan antarmuka pengguna yang independen platform. Library Swing dibangun di atas AWT namun lebih modern. Dokumen selanjutnya membahas komponen-komponen dasar Swing beserta fungsinya dan penggunaan layout manager unt
Makalah ini membahas tentang implementasi queue dengan bahasa pemrograman Pascal. Queue merupakan struktur data yang mengimplementasikan prinsip antrian First In First Out (FIFO). Makalah ini menjelaskan definisi dan gambaran umum queue, macam-macam queue, representasi queue secara statis menggunakan array dan representasi secara dinamis menggunakan linked list tunggal dan ganda. Juga dibahas queue berprioritas beserta contoh kode program untuk masing-masing implementasi queue.
Kode antara / Intermediate code merupakan hasil dari tahapan analisis, yang dibuat oleh kompilator pada saat mentranslasikan program dari bahasa tingkat tinggi
Deadlock terjadi ketika dua atau lebih proses saling menunggu sumber daya masing-masing untuk waktu yang tidak terbatas. Ada beberapa penyebab deadlock seperti eksklusivitas bersama, hold and wait, tidak dapat diputus, dan menunggu sirkular. Sistem dapat mencegah, menghindari, atau mendeteksi dan memulihkan dari deadlock dengan memeriksa permintaan sumber daya untuk menghindari kondisi tidak aman.
ERD sistem peminjaman buku perpustakaan digunakan untuk memodelkan struktur data dan hubungan antara entitas-entitas yang terlibat dalam sistem tersebut, seperti Buku, Peminjam, dan Peminjaman. ERD memberikan gambaran tentang data apa yang dibutuhkan dan bagaimana data saling berhubungan.
Dokumen tersebut membahas tentang perancangan basis data untuk sistem pemesanan tiket pesawat secara online, dengan menjelaskan latar belakang, tujuan, metode penelitian yang digunakan yaitu studi pustaka, konsep dasar database, entity relation diagram, logical record storage, pembahasan tentang ERD, transformasi ERD ke LRS, spesifikasi tabel, form dan laporan, serta kesimpulan dan saran.
Dokumen ini membahas tiga algoritma utama pencarian data dalam array: sequential search, binary search, dan interpolation search. Sequential search membandingkan data secara berurut dari awal hingga akhir array. Binary search membagi ruang pencarian menjadi setengah pada setiap iterasi. Interpolation search mencari posisi estimasi berikutnya tempat data dicari berada. Dokumen ini juga berisi contoh kode dan penjelasan alur kerja dari ketiga algoritma tersebut.
Makalah ini membahas tentang algoritma stack. Terdapat penjelasan mengenai pengertian stack, definisi stack, deklarasi stack, dan operasi-operasi dasar pada stack seperti inisialisasi, push, pop, size, empty, dan full. Contoh pemakaian stack untuk membalik kalimat juga dijelaskan.
Penggunaan SUBQUERY SQL SERVER (USING SUBQUERIES)difa febri
Subquery digunakan untuk menyeleksi data dari query lain (main query) berdasarkan hasil query tersebut. Kasus yang diberikan melibatkan tabel sekolah, akreditasi, peringkat, dan hubungan antar tabel, serta contoh penggunaan insert, update, delete, select, join, dan subquery untuk mengolah data tabel tersebut.
Dokumen tersebut membahas struktur data dan algoritma. Struktur data adalah pengaturan data di memori untuk meningkatkan efisiensi akses data, seperti array, list, antrian, tumpukan dan pohon biner. Algoritma adalah langkah untuk memanipulasi data dengan struktur dasar sekuensial, seleksi dan pengulangan. Contoh penerapan struktur data untuk data pasien klinik diberikan.
Makalah ini membahas perancangan database sistem informasi penjualan untuk Indomaret dengan menggunakan Conceptual Data Model (CDM), Physical Data Model (PDM), dan Kamus Data (KD). CDM dan PDM digunakan untuk merancang struktur database secara konseptual dan fisik, sedangkan KD digunakan untuk mendefinisikan elemen-elemen data yang terkandung dalam sistem informasi tersebut."
Dokumen tersebut membahas tentang proses perancangan diagram entity-relationship (E-R) yang meliputi notasi dasar seperti entitas, atribut, relasi, dan garis penghubung serta kardinalitas hubungan satu banding satu, satu banding banyak, dan banyak banding banyak.
Perancangan berorientasi objek melibatkan perancangan kelas objek dan hubungannya. Sistem terdiri dari objek-objek yang berinteraksi dengan menyediakan layanan dan bertukar informasi. Proses perancangan meliputi analisis, pengembangan model, dan pemrograman berorientasi objek.
Dokumen tersebut membahas tentang GUI (Graphical User Interface) dalam bahasa pemrograman Java. Terdapat tiga API GUI utama yaitu AWT, Swing, dan JavaFX. Swing merupakan toolkit GUI ringan yang menyertakan widget dan memungkinkan pembuatan antarmuka pengguna yang independen platform. Library Swing dibangun di atas AWT namun lebih modern. Dokumen selanjutnya membahas komponen-komponen dasar Swing beserta fungsinya dan penggunaan layout manager unt
Bab 2 membahas aplikasi basis data dan komponennya. Aplikasi basis data terdiri atas menu, formulir, laporan, dan program yang memenuhi kebutuhan organisasi. Terdapat tiga komponen fungsional utama yaitu mekanisme untuk mengupdate, menampilkan, dan mengontrol akses data.
Pedoman ini menjelaskan tentang pelaksanaan Kompetisi Sains Madrasah (KSM) tahun 2014 mulai dari tingkat madrasah hingga nasional. Kompetisi ini bertujuan untuk meningkatkan mutu pendidikan sains di madrasah dan memupuk kreativitas siswa. Terdapat empat tahapan pelaksanaan yaitu di tingkat madrasah, kabupaten/kota, provinsi, dan nasional. Bidang lomba yang dilombakan antara lain fisika, kimia, dan
Dokumen tersebut membahas pengolahan citra digital dengan menggunakan MATLAB. Terdapat penjelasan mengenai teori citra digital, format file citra, dan berbagai fungsi MATLAB untuk membaca, menampilkan, dan mengolah citra digital seperti konversi warna, filtering, dan transformasi Fourier diskrit."
tugas mata kuliah sistem teknologi informasi,,,tentang basis data Julmianti
Dokumen tersebut membahas tentang basis data dan beberapa konsep dasarnya seperti definisi basis data, jenis-jenis basis data, karakteristik basis data, bahasa yang digunakan pada basis data, serta proteksi data.
Tugas 8, septi hendarwati,yananto mihadi putra, se, m.si, konsep basis data r...SeptiHendarwati
Teks tersebut membahas konsep basis data relasional dan data warehouse. Secara ringkas, teks tersebut menjelaskan bahwa basis data relasional menyimpan data dalam bentuk tabel-tabel yang saling berhubungan, sedangkan tujuan data warehouse adalah untuk mendukung pengambilan keputusan manajemen dengan menyimpan data yang terintegrasi dari berbagai sumber.
Model data adalah kumpulan konsep untuk menjelaskan data dan hubungannya. Terdiri atas komponen struktural, manipulasi, dan integritas data. Ada empat kelompok model data: berbasis objek, berbasis record, fisik, dan konseptual.
Laporan praktikum normalisasi membahas proses normalisasi tabel faktur pembelian barang dari bentuk awal yang tidak normal menjadi bentuk normal satu. Tabel awal memiliki kelemahan seperti tidak fleksibel untuk diupdate, insert, dan delete, serta mengandung redundansi data. Proses normalisasi menghasilkan tabel normal satu yang masing-masing baris hanya berisi satu transaksi, sehingga fleksibel untuk dioperasikan dan bebas dari redundansi.
TUGAS SISTEM INFORMASI AKUNTANSI: KONSEP BASIS DATA RELASIONALGita Oktavianti
Dokumen tersebut membahas tentang sistem database relasional dan keunggulannya dibandingkan sistem file. Sistem database memungkinkan integrasi data dari berbagai sumber, memudahkan analisis data untuk pengambilan keputusan bisnis, serta memberikan akses data yang lebih fleksibel."
Tugas 8 sia konsep basis data relasional rizkyta salsabila 33219010014-conv...RizkytaSalsabila
ABSTRAK
Database relasional merupakan jenis Database Management System (DBMS) yang terbaru, yang memberikan gambaran atau bagan skema yang menjelaskan tentang hubungan antar tabel bisa dilakuan di dalam sebuah database. Model database ini digagas oleh seorang pakar database bernama EF codd.
Database relasional System merupakan konsep yang muncul setelah adanya konsep database pendahulunya yaitu network database dan hierarchycal database. Dalam jenis database relasional ini, ada penggambaran yang jelas tentang hubungan suatu tabel dengan tabel yang lain bisa dilakukan, hubungan ini digambarkan dengan garis solid yang menghubungkan antara satu field name di tabel yang satu, dengan satu fieldname di tabel yang lain.
Keyword: Sistem, basis data, relasional
Tugas sim ahmad huzaini - yananto mihadi p - sumber daya komputasi dan komu...ucenlala
Sistem basis data merupakan komponen penting dalam sistem informasi. Basis data menyimpan data secara terorganisir dan terhubung untuk memudahkan pengambilan informasi. Terdapat beberapa model data yang menjelaskan hubungan antar data seperti model relasional, hierarki, dan jaringan. Struktur data terdiri dari bit, byte, field, record, file, dan basis data.
Artikel sim, tetti vera, hapzi ali, sistem manajemen database, universitas me...tettivera
Dokumen tersebut merangkum konsep dasar sistem basis data relasional termasuk tabel, record, field, file, byte, serta contoh DBMS seperti MySQL, Oracle, dan Microsoft SQL Server.
Basis data atau database, berasal dari kata basis dan data. Basis dapat diartikan sebagai markas atau gudang, tempat bersarang atau berkumpul. Data merupakan representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya. Sehingga dapat disimpulkan bahwa basis data (databese) adalah kumpulan informasi yang disimpan didalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query) basis data tersebut disebut sistem manajemen basis data (Database Management System).
Database relasional menyimpan data dalam bentuk tabel yang saling terkait. Software yang mengelola database relasional disebut RDBMS, yang menggunakan perintah SQL untuk membuat, mengubah, dan menghapus tabel dan datanya. Keuntungan DBMS termasuk penggunaan data bersama dan menghindari ketidakkonsistenan, sementara kerugian meliputi biaya dan kompleksitas.
1. Dokumen menjelaskan tentang sistem manajemen basis data, termasuk tujuan belajar, pendahuluan, organisasi data, struktur basis data, membuat basis data, laporan dan formulir, bahasa query, dan personel terkait.
2. Sistem manajemen basis data digunakan untuk mengorganisasikan data besar perusahaan secara efisien untuk pengambilan keputusan, dengan memecah data ke tabel yang saling berhubungan untuk menghindari redundansi.
3.
1. Dokumen menjelaskan tentang sistem manajemen basis data, termasuk tujuan belajar, pendahuluan, organisasi data, struktur basis data, membuat basis data, laporan dan formulir, bahasa query, dan personel terkait.
2. Sistem manajemen basis data digunakan untuk mengorganisasikan data secara efisien agar mudah dicari dan diproses untuk pengambilan keputusan.
3. Struktur basis data mencakup hierarki, jaringan, dan relasional
1. Dokumen ini membahas tentang sistem manajemen basis data, termasuk tujuan belajar, pendahuluan, organisasi data, struktur basis data, membuat basis data, laporan dan formulir, bahasa query, dan personel terkait dengan basis data.
2. Ada beberapa struktur basis data seperti hierarkis, jaringan, dan relasional. Membuat basis data melibatkan menentukan kebutuhan data dan model data perusahaan.
3. Laporan dan formulir digunakan untuk men
1. Dokumen ini membahas tentang sistem manajemen basis data, termasuk tujuan belajar, pendahuluan, organisasi data, struktur basis data, membuat basis data, laporan dan formulir, bahasa query, dan personel terkait dengan basis data.
2. Ada beberapa struktur basis data seperti hierarkis, jaringan, dan relasional. Membuat basis data melibatkan menentukan kebutuhan data dan model data perusahaan.
3. Laporan dan formulir digunakan untuk men
Modul Ajar Bahasa Inggris Kelas 10 Fase E Kurikulum MerdekaFathan Emran
Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka - abdiera.com. Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka. Modul Ajar Bahasa Inggris Kelas 10 SMA/MA Fase E Kurikulum Merdeka.
Ppt landasan pendidikan Pai 9 _20240604_231000_0000.pdffadlurrahman260903
Ppt landasan pendidikan tentang pendidikan seumur hidup.
Prodi pendidikan agama Islam
Fakultas tarbiyah dan ilmu keguruan
Universitas Islam negeri syekh Ali Hasan Ahmad addary Padangsidimpuan
Pendidikan sepanjang hayat atau pendidikan seumur hidup adalah sebuah system konsepkonsep pendidikan yang menerangkan keseluruhan peristiwa-peristiwa kegiatan belajarmengajar yang berlangsung dalam keseluruhan kehidupan manusia. Pendidikan sepanjang
hayat memandang jauh ke depan, berusaha untuk menghasilkan manusia dan masyarakat yang
baru, merupakan suatu proyek masyarakat yang sangat besar. Pendidikan sepanjang hayat
merupakan asas pendidikan yang cocok bagi orang-orang yang hidup dalam dunia
transformasi dan informasi, yaitu masyarakat modern. Manusia harus lebih bisa menyesuaikan
dirinya secara terus menerus dengan situasi yang baru.
Paper ini bertujuan untuk menganalisis pencemaran udara akibat pabrik aspal. Analisis ini akan fokus pada emisi udara yang dihasilkan oleh pabrik aspal, dampak kesehatan dan lingkungan dari emisi tersebut, dan upaya yang dapat dilakukan untuk mengurangi pencemaran udara
Modul Ajar Bahasa Indonesia Kelas 7 Fase D Kurikulum Merdeka - [abdiera.com]Fathan Emran
Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka - abdiera.com. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka. Modul Ajar Bahasa Indonesia Kelas 7 SMP/MTs Fase D Kurikulum Merdeka.
Laporan Pembina Pramuka SD dalam format doc dapat anda jadikan sebagai rujukan dalam membuat laporan. silakan download di sini https://unduhperangkatku.com/contoh-laporan-kegiatan-pramuka-format-word/
AKSI NYATA TRANSISI PAUD-SD : PENGUATAN DI TAHUN AJARAN BARU
basis data lanjut modul
1. MATA KULIAH
BASIS DATA LANJUT
POLITEKNIK PIKSI GANESHA
By
Hendra Jatnika, S.Kom
MATERI
1. Review Database 1 ( ER-Model,Normalisasi, SQL dan Relasional )
2. Design Basis Data
3. Query Lanjut
4. Optimasi Query
5. Database Trigger
6. Basis data Client Server
7. Basis Data Terdistribusi
8. Basis Data Internet
9. Basis Data Warehousing & Decision Support
10.Data Mining
“Pendalaman Materi dan Latihan diberikan pada waktu kuliah”
By
HendraNet
http://www.hendra-jatnika.web.id
2. 1
Bab1
Review Database 1
POKOK BAHASAN:
Pendahuluan
ER-Model
Model Relasional
Structured Query Language
Normalisasi
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami Database Management System dan komponen utamanya
Memahami ER-Model dan dapat menggunakannya sebagai desain awal dari
database
Memahami SQL dan apa saja yang tercakup dalam bahasa SQL
Memahami konsep normalisasi dan dapat melakukan normalisasi data
1.1. PENDAHULUAN
Pada saat sekarang ini, kesuksesan suatu organisasi bergantung pada
kemampuannya menangkap data secara akurat dan tepat waktu, dalam hal
pengoperasian, pengaturan data secara efektif, maupun penggunaan data untuk
keperluan analisis.
Kemampuan untuk mengatur atau mengolah sejumlah data, dan kecepatan untuk
mencari informasi yang relevan, adalah aset yang sangat penting bagi suatu organisasi.
Untuk mendapatkan himpunan data yang besar dan kompleks, user harus memiliki alat
By
HendraNet
http://www.hendra-jatnika.web.id
3. BAB 1 REVIEW DATABASE 1 2
bantu (tools) yang akan menyederhanakan tugas manajemen data dan mengekstrak
informasi yang berguna secara tepat waktu.
Basis data adalah kumpulan data, yang dapat digambarkan sebagai aktifitas dari satu
atau lebih organisasi yang berelasi. Sebagai contoh, basis data universitas berisi
informasi mengenai :
Entiti , semisal mahasiswa, fakultas, mata kuliah, dan ruang kelas
Relasi diantara entitas, seperti pengambilan kuliah yang dilakukan oleh
mahasiswa, staf pengajar di fakultas, dan penggunaan ruang perkuliahan.
Manajemen Sistem Basis Data (Database Management System – DBMS) adalah
perangkat lunak yang didesain untuk membantu dalam hal pemeliharaan dan utilitas
kumpulan data dalam jumlah besar. DBMS dapat menjadi alternatif penggunaan secara
khusus untuk aplikasi, semisal penyimpanan data dalam file dan menulis kode aplikasi
yang spesifik untuk pengaturannya.
Tujuan dari pengajaran mata kuliah basis data adalah untuk memberikan suatu
pendahuluan mengenai sistem manajemen basis data, dengan penekanan pada
baagimana cara mengorganisasi suatu informasi dalam DBMS, untuk memelihara
informasi tersebut dan melakukan pengambilan informasi secara efektif, dan bagaimana
cara mendesain suatu basis data dan menggunakan suatu DBMS secara efektif pula.
Penggunaan DBMS untuk suatu aplikasi tergantung pada kemampuan dan dukungan
DBMS yang beroperasi secara efisien. Sehingga agar bisa menggunakan DBMS
dengan baik, perlu diketahui cara kerja dari DBMS tersebut. Pendekatan yang
dilakukan untuk menggunakan DMBS secara baik, meliputi implementasi DBMS dan
arsitektur secara mendetail untuk dapat memahami desain dari suatu basis data.
1.2. ER-MODEL
Pada ER Model, gambaran dunia nyata diistilahkan dalam obyek dan relasinya.
ER model biasa digunakan untuk mengembangkan inisial dari desain basis data. ER
model menyediakan suatu konsep yang bermanfaat yang dapat mengubah deskripsi
informal dari apa yang diinginkan oleh user menjadi hal yang lebih detail, presisi, dan
deskripsi detail tersebut dapat diimplementasikan ke dalam DBMS.
By
HendraNet
http://www.hendra-jatnika.web.id
4. BAB 1 REVIEW DATABASE 1 3
Pada konteks yang lebih luas, ER model digunakan dalam fase desain basis data
konseptual.
1.2.1. ENTITI, ATRIBUT, DAN HIMPUNAN ENTITI
Entiti adalah obyek dunia nyata yang dapat dibedakan dari obyek yang lain. Entiti
digambarkan (dalam basis data) dengan menggunakan himpunan atribut. Himpunan
entiti yang sejenis disimpan dalam himpunan entiti.
Himpunan entity : Kumpulan entity yang sejenis.
Gambar 1-1: Entiti Pegawai (Employee)
Misal : himpunan data pegawai
o Semua entity dalam himpunan entity memiliki himpunan atribut yang
sama
o Tiap himpunan entity memiliki kunci (key)
o Tiap atribut memiliki domain.
1.2.2. RELASI DAN HIMPUNAN RELASI
Relasi adalah asosiasi diantara dua atau lebih entity
Misal : Ani bekerja di Departemen Farmasi
Gambar 1-2: Relasi antar Entiti
By
HendraNet
http://www.hendra-jatnika.web.id
5. BAB 1 REVIEW DATABASE 1 4
Himpunan Relasi : Himpunan dari relasi-relasi yang sejenis
Himpunan relasi n-ary R berelasi dengan sejumlah himpunan entity n E1 … En
Himpunan entity yang sama dapat berpartisipasi dalam himpunan relasi yang berbeda,
atau mempunyai peran yang berbeda dalam suatu himpunan yang sama.
Gambar 1-3: Self Relationship
1.2.3. FITUR TAMBAHAN UNTUK ER-MODEL
Berikut ini dibahas beberapa fitur tambahan untuk ER-Model :
Batasan Kunci (Key Constraints)
• Pada suatu contoh kasus, seorang pegawai dapat bekerja pada beberapa
departments; sebuah departement memiliki banyak pegawai
• Sebaliknya, tiap departement hanya memiliki seorang manager, yang
berhubungan dengan key constraint pada Manages.
Gambar 1-4: Contoh Key Constraint antar Entiti
By
HendraNet
http://www.hendra-jatnika.web.id
6. BAB 1 REVIEW DATABASE 1 5
Gambar 1-5: Macam-macam Key Constraint
Batasan Partisipasi (Participation Constraints)
• Apakah setiap departemen mempunyai seorang manager ?
o Jika semua departemen pasti mempunyai manager maka partisipasi
Departements dalam Manages dapat dikatakan total. Sebaliknya jika
tidak semua departement memiliki manager maka partisipasinya adalah
partial.
Gambar 1-6: Contoh Participation Constraint
Entiti Lemah (Weak Entity)
• Entiti lemah dapat diidentifikasi secara unik jika terdapat peran kunci utama
(primary key) yang berasal dari atau dimiliki oleh entity yang lain (owner).
o Himpunan entity owner dan entity lemah harus berartisipasi dalam
himpunan relasi one-to-many (satu owner, banyak entity lemah).
By
HendraNet
http://www.hendra-jatnika.web.id
7. BAB 1 REVIEW DATABASE 1 6
Gambar 1-7: Contoh Weak Entity
1.2.4. HIRARKI KLAS
Seperti pada C++, dan bahasa pemrograman yang lain, suatu atribut dapat diturunkan.
Jika kita deklarasikan A ISA B, setiap entity A juga termasuk entity B.
♦ Overlap constraints : Bolehkah seorang pegawai mempunyai status sebagai
pegawai dengan hitungan gaji perjam (Hourly_Emps) sama halnya seperti
pegawai dengan perjanjian kontrak (Contract_Emps) ? (Boleh/Tidak)
♦ Covering constraints : Apakah setiap entity Employees juga merupakan entity
Hourly_Emps dan Contract_Emps ?
Gambar 1-8 : Hirarki Klas
Alasan menggunakan ISA :
♦ Untuk menambahkan deskripsi atribut yang lebih spesifik pada subclass.
♦ Untuk mengidentifikasi entity yang berpartisipasi dalam suatu relasi.
By
HendraNet
http://www.hendra-jatnika.web.id
8. BAB 1 REVIEW DATABASE 1 7
1.2.5. AGGREGASI
Aggregasi digunakan pada saat kita perlu memodelkan apa saja yang terlibat
dalam suatu himpunan relasi. Aggregasi membolehkan kita untuk memperlakukan
suatu himpunan relasi sebagai himpunan entity untuk tujuan partisipasi dalam relasi
yang lain.
Gambar berikut menunjukkan bahwa Monitors adalah relasi yang distinct dengan
deskripsi atribut. Juga dapat dikatakan bahwa tiap sponsorship dimonitor oleh seorang
pegawai.
Gambar 1-9: Contoh Aggregasi
1.3. MODEL RELASIONAL
Basis Data Relasional adalah himpunan relasi. Suatu relasi adalah himpunan
kolom atau tupel (semua barisnya bersifat distinct/unik).
Sedangkan relasi itu sendiri terdiri dari dua bagian yaitu :
♦ Instance : table dengan baris dan kolom
#baris = kardinalitas, #kolom/fields = degree/arity
♦ Skema : menentukan nama relasi, plus nama dan tipe kolom
Contoh relasi misal :
Students(sid : string, name : string, login : string, age : integer, gpa : real).
By
HendraNet
http://www.hendra-jatnika.web.id
9. BAB 1 REVIEW DATABASE 1 8
Gambar 1-10 : Contoh Instance dari Relasi Students
Pada gambar, contoh instance dari relasi Students memiliki kardinalitas = 3, degree = 5,
semua baris bersifat distinct. (Pertanyaan : Apakah semua kolom dalam instance relasi
juga harus distinct ? )
Kekuatan utama dari model relasional adalah kesederhanaannya, dan
kelebihannya adalah dalam melakukan query atas data. Query dapat ditulis secara
intuitif, dan DBMS bertanggungjawab untuk mengevaluasinya secara efisien.
Kita dapat melakukan query pada beberapa table yang saling berelasi. Contoh
pada table berikut jika terdapat table Enrolled yang berelasi dengan table Students
sebelumnya dengan key field sid :
Kemudian diberikan query :
SELECT S.name, E.cid
FROM Students S, Enrolled E
WHERE S.sid=E.sid and E.grade=”A”
Maka table yang dihasilkan dari query tersebut adalah :
Yaitu mencari data Students (nama Students dan mata kuliah yang diikutinya) yang
mendapat nilai “A”.
By
HendraNet
http://www.hendra-jatnika.web.id
10. BAB 1 REVIEW DATABASE 1 9
1.3.1. BATASAN INTEGRITAS (INTEGRITY CONSTRAINT)
Batasan Integritas adalah suatu kondisi yang harus bernilai benar untuk suatu
instance dalam basis data, misal : batasan domain
♦ Dispesifikasi saat skema didefinisikan
♦ Diperiksa pada saat suatu relasi dimodifikasi
Instance dari relasi disebut legal jika bisa memenuhi semua batasan integritas
(integrity constraints) yang telah dispesifikasi. Batasan integritas juga digunakan untuk
menghindari kesalahan dari entry data
Berikut akan dibahas satu persatu batasan integritas dalam model relasional.
Batasan Kunci Primer (Primary Key Constraints)
Himpunan suatu fields merupakan suatu key dari suatu relasi jika :
♦ Tidak ada dua tupel yang distinct yang mempunyai nilai yang sama untuk semua
key fields, dan
♦ Key tersebut tidak memiliki subset.
o Pernyataan 2 salah ? bagaimana dengan superkey
o Jika terdapat lebih dari satu key untuk suatu relasi, maka salah satu dari
key tersebut akan dipilih oleh DBA untuk menjadi primary key.
Misal : sid adalah key untuk relasi Students. (Bagaimana dengan name),
himpunan key (sid,gpa) adalah merupakan superkey.
Primary dan Candidate Key dalam SQL :
• Dari kemungkinan banyak candidate keys (dispesifikasi dengan menggunakan
UNIQUE), salah satunya dapat dipilih menjadi primary key.
• Seorang Students dapat mengambil suatu course dan hanya menerima satu nilai
untuk grade dari course yang diikutinya.
Berikut contoh penggunaan batasan kunci primer :
CREATE TABLE Enrolled
( sid CHAR(20),
cid CHAR(20),
grade CHAR(2),
PRIMARY KEY (sid,cid)
By
HendraNet
http://www.hendra-jatnika.web.id
11. BAB 1 REVIEW DATABASE 1 10
CREATE TABLE Enrolled
(sid CHAR(20),
cid CHAR(20),
grade CHAR(2),
PRIMARY KEY (sid)
UNIQUE(cid,grade))
Foreign Keys
Foreign key adalah himpunan fields dalam satu relasi yang digunakan untuk
melakukan referensi ke tupel pada relasi yang lain (Harus berkorespondensi dengan
primary key pada relasi yang kedua). Berlaku seperti logical pointer
Misal sid adalah foreign key yang direfer dari relasi Students :
o Enrolled(sid : string, cid : string, grade : string)
Foreign Keys dalam SQL :
• Hanya Students yang terdaftar dalam relasi Students yang diperbolehkan untuk
mengikuti suatu perkuliahan (course).
CREATE TABLE Enrolled
(sid CHAR(20), cid CHAR(20), grade CHAR(2),
PRIMARY KEY(sid,cid),
FOREIGN KEY(sid) REFERENCES Students)
Referential Integrity
Misal pada relasi Students dan Enrolled; sid dalam Enrolled adalah foreign key
yang mereferensi relasi Students.
Apa yang harus dilakukan jika tupel Enrolled dengan suatu data Students yang
tidak terdaftar dalam relasi Students disisipkan ? (Hindari hal ini).
By
HendraNet
http://www.hendra-jatnika.web.id
12. BAB 1 REVIEW DATABASE 1 11
Apa yang harus dilakukan jika tupel Students di-hapus ?
o Hapus juga semua tupel Enrolled yang merefer ke tupel Students yang
dihapus tersebut
o Tidak mengijinkan dilakukan penghapusan jika tupel tersebut merefer ke
tupel pada relasi yang lain (alternatif lain dari yang pertama)
o Ubah sid dalam tupel Enrolled menjadi default sid (alternatif yang lain
lagi).
o (Dalam SQL, juga dapat dilakukan setting pada tupel Enrolled yang
direfer oleh tupel Students yang dihapus tersebut dengan memberikan
nilai khusus yaitu null, yang artinya ‘tidak diketahui’ (unknown atau
inapplicable).
Sama halnya jika primary key dari tupel Students dilakukan perubahan (update).
SQL/92 mendukung pilihan berikut untuk perintah delete dan update :
o Default-nya adalah tidak dilakukan apa-apa (pembatalan perintah
delete/update).
o CASCADE (juga men-delete semua tupel yang merefer ke tupel yang di-
delete).
o Set nilai NULL/DEFAULT (Set nilai foreign key dari tupel yang
direferensi).
Contoh pembuatan referential integrity :
CREATE TABLE Enrolled
(sid : CHAR(20),
cid : CHAR(20),
grade : CHAR(2),
PRIMARY KEY(sid,cid),
FOREIGN KEY(sid)
REFERENCES Students
ON DELETE CASCADE
ON UPDATE SET DEFAULT)
By
HendraNet
http://www.hendra-jatnika.web.id
13. BAB 1 REVIEW DATABASE 1 12
1.4. STRUCTURED QUERY LANGUAGE
Structured Query Language (SQL) adalah bahasa database relasional yang dibuat
berdasarkan suatu standart. Bentuk dasar dari SQL adalah sebagai berikut :
SELECT [DISTINCT] select-list
FROM from-list
WHERE qualification
Setiap query dalam SQL harus memiliki klausa SELECT, yang menentukan kolom yang
akan ditampilkan pada hasil, dan klausa FROM yang menentukan cross product table.
Klausa optional WHERE menentukan syarat-syarat seleksi pada table yang ditunjukkan
oleh FROM.
Berikut ini akan dibahas sintaksis query SQL dasar dengan lebih mendetail :
• from list pada klausa FROM adalah daftar nama table. Nama tabel dapat diikuti
oleh nama alias; nama alias berguna ketika nama tabel yang sama muncul lebih
dari sekali pada from list
• select-list adalah daftar nama kolom (termasuk ekspresinya) dari tabel-tabel
yang tercantum pada form list. Nama kolom dapat diawali dengan nama alias
dari tabel.
• Kualifikasi pada klausa WHERE merupakan kombinasi boolean atau
pernyataan kata sambung logika dari kondisi yang menggunakan eksepresi yang
melibatkan operator pembanding. Sedangkan ekspresi itu sendiri dapat berupa
nama kolom, konstanta atau aritmatika dan string.
• Kata kunci distinct bersifat pilihan yang menghapus duplikat dari hasil query.
SQL menyediakan tiga konstruksi set-manipulation yang memperluas query
dasar, yaitu UNION, INTERSECT dan EXCEPT. Juga operasi set yang lain seperti : IN
(untuk memeriksa apakah elemen telah berada pada set yang ditentukan), ANY dan
ALL (untuk membandingkan suatu nilaid engan elemen pada set tertentu), EXISTS
(untuk memeriksa apakah suatu set kosong atau isi). Operator IN dan EXISTS dapat
diawali dengan NOT.
Fitur SQL yang lain yaitu NESTED QUERY, artinya query yang memiliki query
lain di dalamnya, yang disebut dengan subquery. Nested query digunakan jika terdapat
suatu nilai yang tidak diketahui (unknown values).
By
HendraNet
http://www.hendra-jatnika.web.id
14. BAB 1 REVIEW DATABASE 1 13
SQL mendukung lima operasi aggregat yang diterapkan pada sembarang kolom
yaitu :
• COUNT : untuk menghitung cacah
• SUM : menghitung jumlah seluruh nilai
• AVG : menghitung rata-rata nilai
• MAX : mencari nilai paling besar
• MIN : mencari nilai paling kecil.
Kadangkala operasi aggregat diperlukan pada sekeompok grup dari baris pada
relasi. Untuk menulis query semacam itu, dibutuhkan klausa GROUP BY. Dan
penambahan klausa HAVING jika kita ingin menerapkan suatu kondisi terhadap data
yang sudah dikelompokkan dengan GROUP BY.
1.5. NORMALISASI
Normalisasi adalah perbaikan skema database. Latar belakang diperlukannya
normalisasi adalah karena adanya penyimpanan informasi yang redundan.
Istilah normalisasi berasal dari E.F. codd, salah seorang perintis teknologi basis
data. Normalisasi adalah proses untuk mengubah suatu relasi tertentu ke dalam dua buah
relasi atau lebih.
Berikut ini akan dijelaskan proses Normalisasi sampai dengan bentuk normal
ketiga.
Bentuk Normal Pertama (1NF)
Suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut
bernilai tunggal untuk setiap atribut bernilai tunggal untuk setiap baris
contoh:
Tabel 1. sebelum bentuk normal pertama
NIP Nama Hoby
10113024 Endang C Permana Olahraga
Baca Buku
10113025 Samsul Dengar Musik
Makan
Table 2. yang sudah dalam bentuk normal pertama
By
HendraNet
http://www.hendra-jatnika.web.id
15. BAB 1 REVIEW DATABASE 1 14
NIP (Primary Key) Nama Hoby
10113024 Endang C Permana Olahraga
10113024 Endang C Permana Baca Buku
10113025 Samsul Dengar Musik
10113025 Samsul Makan
Bentuk Normal Kedua (2NF)
Suatu relasi dikatakan dalam bentuk normal kedua jika berada dalam normal pertama
dan setiap atribut bukan kunci memiliki ketergantungan sepenuhnya terhadap kunci
primer
contoh:
Tabel 3. sebelum bentuk normal kedua
NIP (Primary Key) Nama Kd_Mata_kuliah Nilai
10113024 Endang C Permana001 70
10113024 Endang C Permana002 90
10113025 Samsul 003 100
10113025 Samsul 004 60
Table 4. yang sudah dalam bentuk normal kedua
NIP (Primary Key)
Kd_Mata_kuliah
(Primary Key)
Nilai
10113024 001 70
10113024 002 90
10113025 003 100
10113025 004 60
Table 5.
NIP (Primary Key) Nama
10113024 Endang C Permana
10113025 Samsul
Bentuk Normal Ketiga (3NF)
By
HendraNet
http://www.hendra-jatnika.web.id
16. BAB 1 REVIEW DATABASE 1 15
Suatu relasi dikatakan dalam bentuk normal ketiga jika berada dalam normal kedua dan
setiap atribut bukan kunci tidak memiliki ketergantungan transitif terhadap kunci primer
contoh:
Tabel 6. sebelum bentuk normal ketiga
Kode_proyek Nama Alamat_kota
001 Endang C Permana Bandung
002 Endang C Permana Ebandung
003 Samsul Jakarta
004 Samsul Jakarta
Table 7. yang sudah dalam bentuk normal ketiga
Kode_Proyek Nama
001 Endang C Permana
002 Endang C Permana
003 Samsul
004 Samsul
Table 8.
Nama Alamat_kota
Endang C Permana Bandung
Samsul jakarta
RINGKASAN:
• Basis data adalah kumpulan data, yang dapat digambarkan sebagai aktifitas dari
satu atau lebih organisasi yang berelasi.
• Manajemen Sistem Basis Data (Database Management System – DBMS) adalah
perangkat lunak yang didesain untuk membantu dalam hal pemeliharaan dan
utilitas kumpulan data dalam jumlah besar.
• Pada ER Model, gambaran dunia nyata diistilahkan dalam obyek dan relasinya dan
digunakan untuk mengembangkan inisial dari desain basis data.
By
HendraNet
http://www.hendra-jatnika.web.id
17. BAB 1 REVIEW DATABASE 1 16
• Kelebihan dari model relasional adalah kesederhanaannya dalam melakukan query
atas data. Query dapat ditulis secara intuitif, dan DBMS bertanggungjawab untuk
mengevaluasinya secara efisien.
• Batasan Integritas adalah suatu kondisi yang harus bernilai benar untuk suatu
instance dalam basis data
• Structured Query Language (SQL) adalah bahasa database relasional yang dibuat
berdasarkan suatu standart, dan memiliki bentuk dasar :
SELECT [DISTINCT] select-list
FROM from-list
WHERE qualification
• Normalisasi adalah perbaikan skema database yang dibuat dengan tujuan untuk
menghindari penyimpanan informasi yang redundan.
LATIHAN SOAL :
1. Gambarlah sebuah diagram ER yang mengungkapkan informasi ini.
Perusahaan rekaman Notown memutuskan untuk menyimpan semua informasi
mengenai musisi yang mengerjakan albumnya (seperti halnya data perusahaan lain)
dalam sebuah database. Pihak perusahaan menyewa anda sebagai desainer database
(dengan biaya konsultasi sebesar $2.500 / hari).
• Tiap musisi yang melakukan rekaman di Notown mempunyai SSN, nama,
alamat dan nomer telpon. Para musisi yang dibayar lebih rendah akan
mendapatkan alamat yang sama dengan musisi lain, dan satu alamat mempunyai
satu nomer telpon.
• Tiap instrumen yang digunakan untuk merekam berbagai macam lagu di
Notown mempunyai nama (contoh : gitar, sinthesizer, flute) dan kunci musik
(contoh : C, B-flat, E-flat).
• Tiap album yang dicatata di Notown mempunyai judul rekaman, tanggal
copyright, format (contoh : CD atau MC) DAN SEBUAH INDENTIFIKASI
ALBUM.
By
HendraNet
http://www.hendra-jatnika.web.id
18. BAB 1 REVIEW DATABASE 1 17
• Tiap lagu yang di catat di Notown mempunyai judul dan pengarang lagu
• Tiap musisi mungkin memainkan beberapa instrumen, dan tiap instrumen dapat
dimainkan oleh beberapa musisi
• Tiap album mempunyai beberapa lagu di dalamnya tapi tidak ada lagu yang
muncul bersamaan dalam satu album.
• Tiap lagu dibawakan oleh satu atau lebih musisi dan seorang musisi bisa
membawakan beberapa lagu.
• Tiap album dibawakan seorang musisi yang berperan sebagai produser.
Seorang musisi bisa menghasilkan beberapa album.
2. Perhatikan skema relasional berikut ini :
Emp(eid:integer, ename : string, age : integer, salary: real)
Works(eid:integer, did:integer, pct_time: integer)
Dept(did:integer, dname: string, budget: real, managerid: integer)
Berikan contoh constraint foreign key yang melibatkan relasi Dept. Apa saja pilihan
yang ada untuk melaksanakan constraint ini pada saat user berusaha untuk menghapus
record pada Dept ?
3. Untuk skema relasional pada nomer 2, definisikan relasi Dept pada SQL sehingga
setiap department dipastikan memiliki seorang manajer.
4. Untuk skema relasional pada nomer 2, tuliskan pernyataan SQL untuk menampilkan
karyawan yang bekerja di department ‘IT’.
5. Untuk skema relasional pada nomer 2, tuliskan pernyataan SQL untuk menampilkan
karyawan yang bekerja di department ‘IT’ dan memiliki usia yang lebih dari usia
rata-rata orang-orang yang bekerja di department ‘IT’
6. Lakukan normalisasi data pada tabel Kuliah yang memiliki atribut : kode kuliah,
nama kuliah, sks, semester, nama dosen, waktu kuliah, ruang.
By
HendraNet
http://www.hendra-jatnika.web.id
19. 18
Bab2
Desain Basis Data
POKOK BAHASAN:
Pendahuluan
Aturan Sistem Informasi dalam Organisasi
Proses Desain Basis Data
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami aturan system informasi dalam organisasi
Memahami proses desain basis data
2.1 PENDAHULUAN
Aktifitas desain basis data menggunakan proses yang sistematis yang disebut
metodologi desain, dimana target basis data diatur dengan RDBMS, ORDBMS atau
ODBMS. Metodologi desain menggunakan alat Bantu seperti Designer 2000 dari
Oracle, ERWin, BPWin dan Paradigm Plus oleh Platinum Technology dan lain
sebagainya.
Biasanya, desain basis data kecil sekitar 20 pemakai tidak perlu sangan
kompleks. Tetapi untuk ukuran medium atau basis data besar yang melayani beberapa
grup alikasi yang luas, puluhan sampai ratusan pemakain, pendekatan sistematis
menjadi sangat perlu untuk melakukan desain basis data.
By
HendraNet
http://www.hendra-jatnika.web.id
20. BAB 2 DESAIN BASIS DATA 19
Basis data yang besar dengan data beberapa puluh sampai gigabyte dan skema
dengan lebih dari 30 sampai 40 tipe entity yang berbeda, dapat memenuhi array yang
besar dari basis data pemerintahan, industri dan institusi financial dan komersial. Sektor
industri termasuk di dalamnya bank, hotel, airline, asuransi, utilitas dan komunikasi
menggunakan basis data untuk operasi setiap hari 24 jam, 7 hari per minggu atau
operasi 24 kali 7. Sistem aplikasi untuk basis data tersebut disebut system pemrosesan
transaksi untuk volume transaksi besar.
2.2ATURAN SISTEM INFORMASI DALAM ORGANISASI
2.2.1 Organizational Context untuk Penggunaan Sistem Basis Data
Sistem basis data menjadi bagian dari sistem informasi dari beberapa organisasi.
Tahun 1960 an sistem informasi didominasi dengan sistem file, tetapi sejak awal 1970
an organisasi mulai berpindah ke sistem basis data. Untuk mengakomodasi sistem,
beberapa organisasi menbuat posisi administrator basisi data (DBA) auntuk mengontrol
aktifitas basis data. Kemudian, information resource management (IRM) juga
diperkenalkan oleh organisasi yang besar sebagai kunci kesuksesan manajemen bisnis.
Terdapat beberapa alasan :
• Data dianggap sebagai resource yang bekerjasama, dan manajemen dan kontrol
dilakukan terpusan untuk pekerjaan yang lebih efisien dalam organisasi
• Fungsi dalam organisasi dikomputerisasi, sebagai kebutuhan ketersediaan data yang
besar dan up to date.
• Seiring pertumbuhan data dan aplikasi relasi yang lebih kompleks dari data perlu
dimodelkan dan diatur.
• Terdapat konsolidasi dari information resource pada beberapa organisasi.
Sistem basis data memenuhi 4 kebutuhan seperti dijelaskan sebelumnya dalam
ukuran besar. Dua karakteristik tambahan dari sistem basis data yang juga sangat
bernilai :
• Data independence mem-proteksi program aplikasi dari perubahan dalam organisasi
logika dan akses fisik dan struktur penyimpan.
By
HendraNet
http://www.hendra-jatnika.web.id
21. BAB 2 DESAIN BASIS DATA 20
• External shemas (views) memungkinkan data yang sama digunakan untuk beberapa
aplikasi dengan setiap aplikasi mempunyai pandangan sendiri terhadap data.
Sistem basis data menyediakan aplikasi baru yaitu :
• Integritas data pada multiple aplikasi ke dalam basis data tunggal.
• Pengembangan yang simple dengan menggunakan bahasa tingkat tinggi seperti
SQL.
• Kemungkinan didukung untuk browsing dan query oleh manajer dalam pemrosesan
transaksi level produksi yang besar.
Sejak awal 1970 sampai pertengahan 1980, perubahan pembuatan data
repository tersentral yang besar dengan DBMS tunggal tersentral. Selama 10 sampai 15
tahun, pengembangan basis data meliputi :
1. Personal computer dan produk software seperti basis data, seperti EXCEL,
FOXPRO, MSSQL, ACCESS atau SQL
2. DBMS terdistribusi dan client-server sebagai pembuka pilihan
mendistribusikan basis data ke banyak sistem komputer untuk kontrol yang
lebih baik dan proses lokal yang lebih cepat. Alat bantu pengembangan
aplikasi seperti POWERBUILDER atau Developer 2000 (oleh Oracle) lebih
mudah digunakan dengan fasilitas built-in untuk menghubungkan aplikasi ke
server basis data.
3. Beberapa organisasi sekarang menggunakan sistem data dictionary atau
information repository, yaitu DBMS min yang mengatur metadata yaitu data
yang menggambarkan struktur basis data, constraints, aplikasi, autorisasi dan
sebagainya. Sistem data dictionary menyimpan dan mengatur informasi
berikut :
a. Deskripsi skema sistem basis data.
b. Informasi detail dari desain fisik basis data, seperti struktur penyimpan,
akses path, ukuran file dan record.
c. Deskripsi pemakai basis data, tanggung jawab dan hak akses.
d. Deskripsi tingkat tinggi dari transaksi basis data dan aplikasi dan relasi
pemakai ke transaksi.
By
HendraNet
http://www.hendra-jatnika.web.id
22. BAB 2 DESAIN BASIS DATA 21
e. Relasi antara transaksi basis data dan data item yang dirujuk. Hal ini
sangat berguna untuk menentukan transaksi mana yang diakibatkan jika
definisi data diubah
f. Penggunakan stasitik seperti frekuensi query dan transaksi dan jumlah
akses ke basis data
2.2.2 Siklus Sistem Informasi
Pada organisasi yang besar, sistem basis data adalah baigan dari sistem
informasi, di dalamnya termasi semua resource yang dilibatkan dalam koleksi,
manajemen, penggunaan dan disseminasi information resource dari organisasi. Pada
sistem komputerisasi, resoruce adalah data itu sendiri, perangkat lunak DBMS,
perangkat keras komputer siste, media penyimpan, personal yang menggunakan dan
mengatur data (DBA, pemakai akhir, dan pemakai dsb), perangkat lunak aplikasi yang
mengakses dan mengubah data dan programmer aplikasi yang mengembangkan
aplikasi.
Siklus sistem informasi disebut siklus makro, dimana siklus sistem basis data
dirujuk ke siklus mikro. Siklus makro meliputi beberapa tahap yaitu :
1. Feasibility analysis : tahap ini berhubungan dengan analisa area aplikasi
potensial, mengidentifikasi sisi ekonomi dari information gathering and
dissemination, membentuk studi keuntungan awal, menentukan kompleksitas
data dan proses, mengatur prioritas aplikasi.
2. Requirement collection and analysis : Kebutuhan detai dikumpulkan dengan
interaksi dengan pemakai potensial dan kelompok pemakai untuk
mengidentifikasi permasalahan dan kebutuhan khusus. Ketergantungan
aplikasi, komunikasi dan prosedur pelaporan diindetifikasi.
3. Desain : Tahanp ini mempunayi dua aspek yaitu mendesain sistem basis data
dan mendesain sistem aplikasi (program) yang menggunkaan dan memproses
basis data.
4. Implementasi : Sistem informasi diimplementasi, basisi data dibentuk dan
transaksi basis data diimplementasikan dan diujicoba.
By
HendraNet
http://www.hendra-jatnika.web.id
23. BAB 2 DESAIN BASIS DATA 22
5. Validation and acceptance testing : Tingkat akses dari sistem dalam memenuhi
kebutuhan pemakai dan kriteria performansi divalidasi. Sistem diujicoba
dengan kriteria performanisi dan spesifikasi kelakukan.
6. Deployment, operation and maintenance : Pada tahap ini dilakukan konversi
pemakai dari sistem lama ke sistem baru melalui training. Tahap operasional
mulai jika semua fungsi sistem dioperasikan dan divalidasi. Jika kebutuhan
baru atau aplikasi bertambah, maka harus melalui semua tahap sebelumnya
sampai semua divalidasi dan berhubungan dengan sistem. Monitoring
performansi sistem dan pemeliharaan sistem merupakan aktifitas yang penting
selama tahap operasi.
2.2.3 Siklus Sistem Aplikasi Basis Data
Aktifitas yang berhubungan dengan siklus sistem aplikasi basis data meliputi
tahap berikut :
1. System definition : Scope dari sistem basis data, pemakai dan aplikasi
didefinisikan. Antarmuka untuk pemakai, batasan response time dan
kebutuhan penyimpan dan pemrosesan diidentifikasi.
2. Database design : Pada akhir dari tahap ini , desain logika dan fisik dari sistem
basisi data dari DBMS sudah siap.
3. Database implementation : Tahap ini meliputi proses menentukan definisi basis
data konseptual, eksternal dan internal, membuat file basis data kosong dan
implementasi aplikasi perangkat lunak.
4. Loading or data conversion : Basis data dipopulasikan denan menyimpan data
langsung atau mengubah file yang sudah ada ke format sistem basis data.
5. Application conversion : aplikasi perangkat lunak dari sistem pendahulu
dikonversikan ke sistem baru.
6. Testing and validation : sistem baru diuji coba dan divalidasi
7. Operation : sistem basis data dan aplikasi dioperasikan. Biasanya sistem lama
dan baru dioperasikan secara paralel dalam beberapa waktu.
8. Monitoring and maintenance : selama tahap operasional, sistem secara tetap
dimonitor dan dipelihara. Perubahan dan pengembangan dapat terjadi baik
By
HendraNet
http://www.hendra-jatnika.web.id
24. BAB 2 DESAIN BASIS DATA 23
pada isi data maupun aplikasi perangkat lunak. Modifikasi dan reorganisasi
diperlukan dari waktu ke waktu.
2.3 PROSES DESAIN BASIS DATA
Sekarang kita fokuskan ke siklus sistem aplikasi basisi data yaitu desain basis
data. Tujuan desain basis data adalah :
• Memenuhi kebutuhan isi informasi dari pemakai dan aplikasi tertentu.
• Menyediakan struktur informasi alami dan mudah dipahami.
• Mendukung kebutuhan pemrosesan dan performansi obyektif seperti response
time, processing time dan storage space.
Terdapat enam tahap utama pada proses desain basis ata yaitu :
1. Koleksi dan analisa kebutuhan
2. Desain basis data konseptual
3. Pemilihan DBMS
4. Pemetaan model data (disebut juga desain basis data logika)
5. Desain basis data fisik.
6. Implementasi dan tuning sistem basis data
Proses desain terdiri dari dua aktifitas paralel seperti pada Gambar 2-1. Aktifitas
pertama meliputi desain data content dan struktur basis data, kedua berhubungan dengan
aplikasi basis data.
Enam tahap diatas tidak diproses secara berurutan. Pada beberapa kasus
mungkin memodifikasi desain dari awal tahap selama tahap kemudian. Feedback loop
antar tahap juga dalam tahap sering terjadi. Summary tahap 2, 4, dan 5 adalah berikut :
• Desain basis data konseptual (Tahap 2) : Tujuan dari tahap ini adalah
memproduksi skema konseptual untuk basis data yang independen dari DBMS
tertentu. Biasanya menggunakan model data tingkat tinggi seperti model ER
atau EER.
• Pemetaan model data (Tahap 4) : Selama tahap ini yang djuga disebut desain
basis data logika, dilkaukan pemetaan skema konseptual dari model data tingkat
tinggi ke model data DBMS.
By
HendraNet
http://www.hendra-jatnika.web.id
25. BAB 2 DESAIN BASIS DATA 24
• Desain basis data fisik (Tahap 5) : Selama tahap ini, didesain spesifikasi basis
data yang disimpat dalam hal struktur penyimpan fisik, penempatan record dan
indeks. Hal ini berhugungan dengan terminologi arsitektur DBMS 3 level.
• Implementasi sistem basis data dan tuning (Tahap 6) : Selama tahap ini , basis
data dan program aplikasi diimplementasikan, diuji cobakan dan diatur
layanannya.
Gambar 2-1: Tahap perancangan basis data untuk basis data besar
By
HendraNet
http://www.hendra-jatnika.web.id
26. BAB 2 DESAIN BASIS DATA 25
2.3.1 Tahap 1 : Koleksi dan Analisa Kebutuhan
Sebelum melakukan desain basis data, harus mengetahui dan menganalisa
keinginan pemakai terhadap suatu basis data sedetail mungkin. Proses ini disebut
koleksi dan analisa kebutuhan. Untuk menentukan kebutuhan, pertama kali harus
diidentifikasi bagian lain dari sistem informasi yang berhubungan dengan sistem basisi
data. Termasuk di dalamnya pemakai dan aplikasi baru dan yang sudah ada, kemudian
kebutuhan dikoleksi dan dianalisa. Aktifitas yang merupakan bagian dari tahap ini
adalah :
1. Area aplikasi mayor dan kelompok pemakai yang akan menggunakan basis data
atau pekerjaan apa yang akan diakibatkan diidentifikasi.
2. Dokumen yang sudah ada yang berhubungan dengan aplikasi dipelajari dan
dianalisa. Dokumen lain seperti police manual, form, report dan diagram
organisasi di-review untuk menentukan apakah terdapat tambahan pada koleksi
kebutuhan dan spesifikasi proses.
3. Lingkungan operasi saat ini dan rencana penggunaan informasi dipelajari.
Termasuk di dalamnya analisa tipe transaksi dan frekuensi penggunaannya dan
aliran informasi dalam sistem. Karakteristik geografi seperti pemakai, transaksi
asli, tujuan pelaporan dipelajari. Data input dan output untuk transaksi
ditentukan.
4. Penulisan respon untuk menentukan pertanyaan terkadang dikelompokkan dari
pemakai basis data potensial atau kelompok pemakai. Pertanyaan ini melibatkan
prioritas pemakai dan tempat yang penting untuk suatu aplikasi. Individu
dilakukan interview untuk menolong dalam memperoleh informasi yang
berharga dan setting prioritas.
Analisa kebutuhan dibawa ke user akhir atau pelanggan sistem basis data oleh
tim ahli analis kebutuhan. Kebutuhan awal lebih informal, tidak lengkap, tidak
konsisten dan sebagian tidak benar. Perlu pekerjaan yang lebih banyak untuk
mentransformasi keebutuhan awal ke aplikasi yang lebih spesifik yang dapat digunakan
oleh pengembangan sebagai langkah awal untuk menulis implementasi dan uji coba.
Untuk transformasi kebutuhan ke struktur yang lebih baik, teknik spesifikasi
kebutuhan digunakan. Misalnya OOA (object-oriented analysis) dan DFD (data flow
By
HendraNet
http://www.hendra-jatnika.web.id
27. BAB 2 DESAIN BASIS DATA 26
diagram). Metode tersebut menggunakan teknik diagram untuk mengorganisasi dan
menampilkan kebutuhan proses informasi. Dokumentasi tambahan dalam bentuk teks,
tabel, grafik dan keputusan melengkapi diagram tersebut.
2.3.2 Tahap 2 : Desain Basis Data Konseptual
Tahap kedua dari perancangan basis data melibatkan dua aktifitas paralel.
Aktifitas pertama yaitu desain skema konseptual, menentukan kebutuhan data yang
dihasilkan pada tahap 1 dan menghasilkan skema basis data konseptual. Aktifitas
kedua, desain transaksi dan aplikasi, menentukan analisa aplikasi basis data pada tahap
1 dan menghasilkan spesifikasi level tinggi untuk aplikasi tersebut.
Tahap 2a : Desain Skema Konseptual
Skema konseptual diproduksi dari tahap ini terdiri dari model data tingkat
tinggi DBMS-independent dengan beberapa alasan :
1. Tujuan desain skema konseptual adalah skema lengkap tentang struktur basis
data, semantik, interrelationship dan constraint. Hal ini tergantung dari DBMS
yang digunakan.
2. Skema konseptual tidak tersedia sebagai deskripsi stabil dari isi basis data.
Pemilihan DBMS dan keputusan desain dapat berubah tanpa mengubah skema
konseptual DBMS-independent.
3. Skema konseptual yang baik sangat penting untuk pemakai basis data dan
desainer. Penggunaan model data tingkat tingga lebih ekspresif dan umum
daripada model data dari DBMS.
4. Deskripsi diagram dari skema konseptual dapat menawarkan kendaraan
komunikasi yang baik diantara pemakai basis data, desainer dan analyst. Karena
model data level tinggi biasanya berbentuk konsep dan mudah untuk mengerti
daripada model data DBMS yang level lebih rendah, atau definisi sintak data,
komunikasi yang berhubungan dengan desain skema menjadi lebih kelihatan.
Pada tahap desain basis data, perlu menggunakan model data konseptual level
tinggi dengan karakteristik :
1. Expressiveness : model data cukup ekspresif untuk membedakan perbedaan tipe
data, relationship dan constraint.
By
HendraNet
http://www.hendra-jatnika.web.id
28. BAB 2 DESAIN BASIS DATA 27
2. Simplicity and understandability : model cukup sederhana untuk pemakai yang
tidak mengerti dan menggunakan konsep tersebut.
3. Minimality : model mempunyai sejumlah kecil konsep dasar yang berbeda dan
tidak overlapping.
4. Diagrammatic representation : model dalam bentuk notasi diagram untuk
menampilkan skema konseptual yang mudah diintepretasikan.
5. Formality : skema konseptual ditampilkan dalam model data aharus
merepesentasikan spesifikasi formal data. Sehingga, konsep model harus
ditentukan secara akurat dan tidak berganda.
Pendekatan ke Desain Skema Konseptual
Untuk desain skema konseptual, harus diidentifikasi komponen dasar dari skema
: tipe entiti, tipe relationship dan atribut. Harus juga menentukan key attributes,
cardinality dan participation constraint, weak entity dan hierarki spesification /
generatization. Terdapat dua pendekatan untuk merancang skema konseptual, yang
diturunkan dari kebutuhan yang dikoleksi.
Pendekatan pertama adalah pendekatan desain skema terpusat (one-shot),
dimana kebutuhan dari aplikasi yang berbeda dan kelompok pemakai pada tahap 1
digabungkan ke dalam satu himpunan kebutuhan sebelum desain skema dimulai. Suatu
skema berhubungan digabungkan ke himpunan kebutuhan kemudian dilakukan desain.
Jika terdapat banyak pemakai dan banyak aplikasi, penggabungan semua kebutuhan
dapat menghabiskan waktu. Asumsikan DBA bertanggung jawab untuk menentukan
bagaimana menggabungkan kebutuhan dan untuk merancang skema konseptual untuk
keseluruhan basis data. Jika suatu skema konseptual dirancang dan final, skema
eksternal untuk kelompok pemakai dan aplikasi dapat ditentukan oleh DBA
Pendekatan kedua adalah pendekatan view integration, dimana kebutuhan tidak
digabungkan. Suatu skema dirancang untuk setiap kelompok user atau aplikasi
berdasarkan kebutuhan masing-masing. Kemudian dikembangkan skema level tinggin
(view) untuk setiap kelompok user atau aplikasi. Selama tahap view integration, skema
bagian digabungkan ke dalam skema konseptual global untuk keseluruhan basis data.
Individual view dapat dibentuk sebagai skema eksternal setelah view integration.
By
HendraNet
http://www.hendra-jatnika.web.id
29. BAB 2 DESAIN BASIS DATA 28
Perbedaan kedua pendekatan terletak pada tujuan dimana banyak view atau
kebutuhan dari banyak pemakai dan aplikasi digabungkan. Pada pendekatan terpusat,
rekonsiliasi dilakukan secara manual oleh DBA. Hal ini dapat mengakibatkan terjadi
konflik pada staff DBA. Permasalahan ini dipecahkan dengan menggunakan konsultan
luar.
Pada pendekatan view integration, setiap kelompok pemakai merancang skema
konseptual (EER) masing-masing. Kemudian proses integrasi diaplikasikan pada skema
ini (view) oleh DBA untuk membentuk skema integrasi global. Meskipun view
integration dapat dilakukan manual, aplikasi ini adalah basis data besar yang melibatkan
puluhan kelompok pemakai membutuhkan suatu metodologi dan penggunaan alat bantu
otomatis untuk integrasi. Korespondensi antara atribut, tipe entiti dan relasionship
harus ditentukan sebelum integrasi dapat dilakukan.
Strategi untuk Desain Skema
Terdapat beberapa stategi untuk merancang skema, yaitu :
1. Top-down strategy : Dimulai dengan skema yang berisi abstraksi level tinggi
dan kemudian mengaplikasikan ketentuan top-down. Sebagai contoh, tentukan
hanya beberapa tipe entiti level tinggi dan kemudian lakukan pembagian ke
dalam tipe entiti level lebih rendah dan relationship.
2. Bottom-up strategy : Mulai dengan skema yang berisi abstraksi dasar dan
kemudian kombinasikan atau tambahkan abstraksi tersebut. Sebagai contoh,
mulai dengan atribut dan kelompok ke dalam tipe entiti dan relationship.
Tambahkan relasi baru pada tipe entiti selama proses perancangan.
3. Inside-out strategy : Merupakan kasus khusus dari bottom-up strategi, dimana
atensi difokuskan pada himpunan konsep terpusat yang lebih nyata. Model
kemudian diisi dengan konsep baru pada konsep yang sudah ada. Kita dapat
tentukan beberapa tipe entiti nyata dalam skema dan dilanjutkan dengan
menambah tipe entiti dan relasi yang berhubungan.
4. Mixed strategy : Kebutuhan dibagi berdasarkan top-down strategy, bagian
skema dirancang untuk setiap partisi berdasarkan bottom-up strategy. Jadi
strategi ini mengkombinasikan beberapa skema.
By
HendraNet
http://www.hendra-jatnika.web.id
30. BAB 2 DESAIN BASIS DATA 29
Gambar 2-2 dan 2-3 menggambarkan top-down strategy dan bottom-up strategy.
Contoh top-down didekomposisi dari tipe entiti ke dalam beberapa tipe entiti. Gambar
2-2(a) menunjukkan COURSE dibagi dalam COURSE dan SEMINAR, dan relasi
TEACHES dihubungkan terpisah dalam TEACHES dan OFFERS. Gambar 2-2(b)
terlihat tipe entiti COURSE_OFFERING dibagi dalam dua tipe entiti COURSE dan
INSTRUCTOR dan relasi antar keduanya. Gambar 2-3(a) memperlihatkan bottom-up
strategy dari generalisasi relasi baru diantara tipe entiti. Bottom-up menggunakan
kategory (tipe union) yang diilustrasikan pada Gambar 2-3(b) dimana konsep baru
Gambar 2-2: Strategi top-down. (a) membangkitkan tipe entiti baru.
(b) dekomposisi tipe entiti ke dalam dua tipe entiti dan relasi
By
HendraNet
http://www.hendra-jatnika.web.id
31. BAB 2 DESAIN BASIS DATA 30
VEHICLE_OWNER ditemukan dari tipe entiti yang sudah ada yaitu FACULTY,
STAFF dan STUDENT.
Skema Integrasi (View)
Untuk basis data yang besar dengan pemakai dan aplikasi yang diharapkan,
pendekatan view integration untuk merancang skema individan dan kemudian
menggabungkannya. Karena individual view relatif kecil, perancangan skema lebih
sederhana. Tetapi diperlukan metodologi untuk integrasi view ke skema basis data
global. Skema integrasi dibagi ke dalam beberapa bagian :
Gambar 2-3: Contoh strategi bottom-up. (a) menemukan dan menambah relasi
baru. (b) menemukan katagori baru (tipe union) dan menghubungkannya.
By
HendraNet
http://www.hendra-jatnika.web.id
32. BAB 2 DESAIN BASIS DATA 31
1. Indentifikasi korespondensi dan konflik diantara skema : Karena skema
dirancang individual, perlu menentukan konstruksi khusus dalam skema yang
merepresentasikan konsep dunia nyata yang sama. Korespondensi diidentifikasi
sebelum integrasi diproses. Selama proses tersebut, beberapa tipe konflik
diantara skema ditemukan, antara lain :
a. Naming conflict : Terdapat dua tipe synonym dan homonym. Synonym
terjadi jika dua skema menggunakan nama yang berbeda dan
menggambarkan konsep yang sama, misalnya, tipe entiti CUSTOMER
pada satu skema mungkin digunakan sama dengan konsep tipe entiti
CLIENT pada skema lain. Homonym terjadi jika dua skema
menggunakan nama yang sama untuk enggambarkan konsep yang
berbeda, sebagai contoh tipe entiti PART merepresentasikan perangkat
komputer dalam skema satu dan perangkat mebel dalam skema dua.
b. Type conflicts : Konsep yang sama kemungkinan direpresentasikan
dalam dua skema dengan konstruksi pemodelan yang berbeda. Sebagai
contoh, konsep DEPARTMENT mungkin tipe entiti dalam skema satu
dan atribut dalam skema lain.
a. Domain (value set) confict : Suatu atribut berbeda domain dalam dua
skema. Sebagai contoh, SSN dideklarasikan sebagai integer dalam
skema satu dan karakter string dalam skema lain. Konflik unit
pengukuran dapa terjadi jika satu skema merepresentasikan WEIGHT
dalam pon dan lainnya dalam kilogram.
b. Konflik diantara constraint : Dua skema mungkin mempunyai constrain
berbeda, sebagai contoh, key pada tipe entiti mungkin berbeda setiap
skema. Contoh lain melibatkan constraint terstruktur yang berbeda pada
relasi seperti TEACHES; satu skema mungkin direpresentasikan 1:N
sementara lainnya M:N.
2. Modifikasi view untuk kesesuaian dengan lainnya : satu skema dimodifikasi
sehigga sesuai dengan skema lainnya. Beerapa konflik diidentifikasi sebagai hal
perama yang harus dipecahkan.
3. Menggabungkan view : Skema global dibuat dengan menggabungkan skema
individu. Konsep yang berhubungan direpresaentasikan hanya sekali dalam
By
HendraNet
http://www.hendra-jatnika.web.id
33. BAB 2 DESAIN BASIS DATA 32
skema global dan pemetaan antara view dan skema global ditentukan. Hal ini
merupakan langkah yang sulit untuk melakukan pada basis data yang
sebenarnya yang melibatkan ratusan entiti dan relasi. Hal ini melibatkan
sejumlah intervensi manusia dan negosiasi untuk memecahkan konflig dan
mendapatkan solusi yang dapat diterima untuk skema global.
4. Restrukturisasi : sebagai langkah akhir, skema global dianalisa dan
direstrukturisasi untuk memindahkan redundansi dan konpleksitas yang tidak
perlu.
Beberapa ide diatas dapat dilihat pada contoh sederhana Gambar 2-4 dan 2-5.
Gambar 2-4, dua view digabungkan untuk membuat basis data bibliografi. Selama
identifikasi dari korespondensi antara dua view, ditemukan RESEARCHER dan
AUTHOR adalah synonym, demikian juga CONTRIBUTED_BY dan WRITTEN_BY.
Kemudian, menentukan modifikasi VIEW 1 untuk memasukan SUBJECT untuk
ARTICLE, seperti Gambar 2-4, untuk konfirmasi ke VIEW 2. Gambar 2-5
menunjukkan hasil penggabungan sebagai MODIFIED VIEW 1 dengan VIEW 2.
Generalisasi tipe entiti ARTICLE dan BOOK ke dalam tipe entiti PUBLICATION,
dengan atribut umum Title. Relasi CONTRIBUTED_BY dan WRITTEN_BY
digabungkan, demikian juga tipe entiti RESEARCHER dan AUTHOR. Atribut
Publisher diaplikasikan hanya pada tipe entiti BOOK dimana atribut Size dan relasi tipe
PUBLISHED_IN diaplikasikan hanya ke ARTICLE.
Tahap 2b : Desain Transaksi
Tujuan dari tahap 2b, dimana proses dilakukan paralel dengan tahap 2°, untuk
mendesain karaktersitik transaksi basis data yang diketahui (aplikasi) dengan cara
DBMS-independent. Jika suatu sistem basis data dirancang, perancang sadar beberapa
aplikasi yang diketahui (atau transaksi) yang akan dijalankan dalam basis data
diimplementasikan. Bagian terpenting dari perancangan basis data adalah menentukan
karakteristik fungsi transaksi tersebut sebelumnya dalam proses perancangan. Hal ini
menjamin skema basis data akan memasukan semua informasi yang dibutuhkan oleh
transaksi tersebut.
By
HendraNet
http://www.hendra-jatnika.web.id
34. BAB 2 DESAIN BASIS DATA 33
Gambar 2-4: Modifikasi view untuk konfirmasi sebelum integrasi.
By
HendraNet
http://www.hendra-jatnika.web.id
35. BAB 2 DESAIN BASIS DATA 34
Teknik yang umum digunakan untuk menentukan transaksi pada level konseptual
adalah mengidentifikasi input/output dan functional behavior. Dengan menentukan
parameter input dan ouput dan aliran fungsi internal, desainer dapat mennetukan
transaksi secara konseptual dan dengan cara system-independent. Transaksi
dikelompokkan dalam tiga kategori :
(1) Retrieval transaction, yang digunakan untuk menampilkan data ke layar atau untuk
produksi pelaporan.
(2) Update transaction, yang digunakan untuk memasukkan data baru atau
memodifikasi data yang sudah ada pada basis data.
(3) Mixed transaction, yaitu digunakan untuk aplikasi yang komplek yang melakukan
retrieval dan update. Sebagai contoh, misalnya basis data pemesanan tiket pesawat
(airline reservation). Retrieve transaction menampilkan daftar semua pesawat pagi
antara dua kota. Update transaction berupa booking tempat duduk pada jalur
tertentu. Mixed transaksi pada penampilan beberapa data seperti menampikan
reservasi pelanggan pada beberapa penerbangan, dan kemudian mengubah basis
data seperti membatalkan reservasi dengan menghapusnya, atau menambah segmen
penerbangan untuk reservasi yang sudah ada. Transaksi (aplikasi) dapat
menggunakan POWER BUILDER atau Developer 2000 (Oracle).
Gambar 2-5: Skema terintegrasi setelah menggabungkan view 1 dan view 2.
By
HendraNet
http://www.hendra-jatnika.web.id
36. BAB 2 DESAIN BASIS DATA 35
2.3.3 Tahap 3 : Pemilihan DBMS
Pemilihan DBMS berdasarkan beberapa faktor, beberapa hal teknis, ekonomi dan
kebijakan organisasi. Faktor teknis berhubungan dengan ketepatan DBMS yang dipilih.
Yang termasuk faktor teknis adalah tipe DBMS (relational, object-relational, object,
lainnya), struktur penyimpan dan akses path yang didukung DBMS, ketersediaan antar
muka pemakai dan pemrogram, tipe bahasa query tingkat tinggi, ketersediaan alat bantu
pengembangan, kemampuan berhubungan dengan DBMS lain melalui media standatd,
pilihan arsitektur yang berhubungan dengan operator client-server dan lain sebagainya.
Faktor non teknis termasuk di dalamnya status finansial dan dukungan organisasi
terhadap vendor. Hal-hal yang harus dipertimbangkan secara ekonomi dan faktor
organisasi adalah ;
1. Software acquisiton cost : Merupakan harga ”up-front” dalam pembelian perangakt
lunak, termasuk pilihan bahasa, pilihan antar muka seperti form, menu dan antar
muka Web berbasis GUI, pilihan recovery/backup, metode akses khusu dan
dokumentasi. Versi DBMS yang tepat untuk sistem operasi harus dipilih
Biasanya, alat bantu pengembangan, alat bantu desain dan dukungan bahasa
tambahan tidak termasuk dalam harga dasar.
2. Maintenance cost : Berhubungan dengan harga layanan pemeliharaan standart dari
vendor dan untuk menjaga versi DBMS tetap up to date.
3. Hardware acquisition cost : perangkat keras baru mungkin diperlukan, seperti
memory, terminal, disk drive dan controller baru, atau penyimpan DBMS khusus.
4. Database creation and conversion cost : Berhubungan dengan biaya pembuatan
sistem basis data dari konversi sistem yang sudah ada ke perangkat lunak DBMS
baru. Operasi sistem yang sudah ada dilakukan paralel dengaan sistem baru sampai
semua aplikasi diimplementasikan penuh dan diujicoba.
5. Personal cost : Akuisisi perangkat lunak DBMS untuk pertama kali oleh organisasi
biasanya dilakukan dengan reorganisasi departemen data processing.
6. Training cost : Karena DBMS biasanya berupa sistem komplek, personal harus
ditraining menggunakan dan memprogram DBMS. Training diperlukan pada
semua level, termasuk programming, pengembangan aplikasi dan administrasi
basis data.
By
HendraNet
http://www.hendra-jatnika.web.id
37. BAB 2 DESAIN BASIS DATA 36
7. Operating cost : Biaya operasi lanjutan dari sistem basis data biasanya tidak
termasuk dalam evaluasi.
Keuntungan DBMS tidak mudah diukur dan dihitung. DBMS mempunyai
beberapa keuntungan dibandingkan sistem file, seperti mudah penggunaan, konsolidasi
informasi perusahaan yang lebih luas, ketersediaan data yang lebih luas, dan akses yang
lebih cepat ke informasi. Dengan akses berbasis Web, bagian data dapat dibuat akses
global seperti pemakai luar. Keuntungan lainnya adalah mengurangi biaya
pengembangan aplikasi, mengurangi redudancy data dan keamanan dan kontrol yang
lebih baik. Basis data sudah digunakan pada banyak organisasi, keputusan berpindah
dari aplikasi berbasis file ke basis data terpusat dikarenakan faktor-faktor berikut :
1. Kompleksitas data : Relasi data menjadi lebih kompleks, memerlukan DBMS
yang kuat.
2. Sharing diantara aplikasi : Semakin besar sharing antar aplikasi, semakin banyak
redundansi file dan lebih besar kebutuhan akan DBMS
3. Perumbuhan dan perubahan data secara dinamis : Jika data berubah secara
konstan, lebih mudah untuk melakukan perubahan dengan DBMS dibandingkan
dengan sistem file.
4. Frekuensi permintaan ad hoc data : Sistem file tidak cukup tepat untuk
penampilan data ad hoc
5. Voleme data dan kebutuhan untuk kontrol : Volume data yang besar dan
kebutuhan mengontrol memerlukan DBMS
Beberapa faktor ekonomi dan organisasi yang berakibat pemilihan suatu DBMS:
1. Organization-wide adoption of a certain philosopy : Biasanya merupakan faktor
dominan yang berakibat pada penerimaan model data (misalnya, relational
versus obyek), vendor, metodologi pengembangan dan alat bantu (misalnya,
penggunaan analisa berorientasi obyek dan alat bantu desain dan methodologi
dibutuhkan oleh semua aplikasi baru.
2. Familiarity of personnel with the system : Jika staff programming dalam
organisasi familiar dengan DBMS tertentu, dapat mengurangi biaya training dan
waktu pembelajaran.
By
HendraNet
http://www.hendra-jatnika.web.id
38. BAB 2 DESAIN BASIS DATA 37
3. Availability of vendor service : ketersediaan asisten vendor dalam pemecahan
permasalahan dengan sistem sangat penting, karena perubahan dari non-DBMS
ke lingkungan DBMS kebanyakan membutuhkan bantuan vendor pada awalnya.
Beberapa DBMS sekarang mempunyai versi yang berjalan pada beberapa
konfigurasi perangkat keras / perangkat lunak (platform). Kebutuhan aplikasi untuk
backup, recovery, performansi, integritas dan sekuriti harus juga dipertimbangkan.
Beberapa DBMS sekarang dirancang sebagai solusi total untuk pemrosesan informasi
dan manajemen sumber daya informasi yang diperlukan dalam organisasi. Kebanyakan
vendor DBMS mengkombinasikan produk mereka dengan pilihan berikut :
• Editor teks dan browser
• Pembangkit laporan dan daftar utilitas
• Perangkat lunak komunikasi
• Entri data dan menampilkan form, layar, dan menu dengan pengeditan otomatis
• Alat bantu untuk mengakses World Wide Web
• Alat bantu merancang basis data grafis.
2.3.4 Tahap 4 : Pemetaan Model Data (Desain Basis Data Logika)
Tahap berikutnya dari perancangan basis data adalah membuat skema
konseptual dan skema eksernal damal model data dari DBMS terpilih dengan
memetakan skema tersebut. Proses pemetaan dalam dua bentuk :
1. System-independet mapping : Pada bentuk ini, pemetaan tidak
mempertimbangkan karakteristik khusus datau kasus khusus yang diaplikasikan
ke implementasi DBMS dari model data.
2. Tailoring the schemas to aspecific DBMS : DBMS yang berbeda
mengimplementasikan model data dengan menggunakan pemodelah khusus.
Hasil dari tahap ini berupa pernyataan DDK dalam bahasa DBMS terpilih yang
merupakan skema level konseptual dan eksternal dalam sistem basis data. Tetapi jika
pernyataan DDL termasuk beberapa parameter rancangan fisik, spesifikasi DDL yang
lengkap harus menuggu setelah tahap rancangan basis data fisik selesai. Beberapa alat
bantu CASE (computer-assisted software engineering) otomatis dapat membangkitkan
DDb untuk sistem komersial dari rancangan skema konseptual.
By
HendraNet
http://www.hendra-jatnika.web.id
39. BAB 2 DESAIN BASIS DATA 38
2.3.5 Tahap 5 : Desain Basis Data Fisik
Perancangan basis data fisik adalah proses memilih struktur penyimpan khusus
dan mengakses path untuk file basis data untuk mendapatkan performansi yang baik
pada aplikasi basis data. Setiap DBMS menawarkan berbagai pilihan organisasi file dan
akses path. Termasuk di dalamnya berbagai tipe pengindeksan, clustering record yang
berhubungan melalui pointer dan berbagai tipe hashing. Bila suatu DBMS dipilih,
proses perancangan basis data fisik dibatasi pada struktur yang tepat utuk file basis data
melalui pilihan yang ditawarkan DBMS. Kriteria berikut biasanya digunakan untuk
menuntun pemilihan rancangan basis data fisik :
1. Waktu respon : Merupakan waktu antara pengiriman transaksi basis data untuk
eksekusi dan penerimaan respon.
2. Utilitas ruang penyimpan : Merupakan jumlah ruang penyimpan yang
digunakan file basis data dan struktur akses path pada disk, termasuk
pengindeksan dan akses path lain.
3. Transaction throughput : Merupakan jumlah transaksi rata-rata yang dapat
diproses per metnin, merupakan parameter kritis dari sistem transaksi seperti
yang digunakan pada reservasi pesawat atau bank.
Hasil dari rancangan basis data fisik dalam tahap ini merupakan ketentuan awal
dari struktur penyimpan dan akses path untuk file basis data. Juga selalu diperlukan
modifikasi rancangan berdasarkan observasi performansi setelah sistem basis data
diimplementasikan. Aktifitas tahap berikutnya adalah tuning basis data.
2.3.6 Tahap 6 : Implementasi Basis Data dan Tuning
Setelah rancangan logika dan fisik selesai, kita dapat mengimplementasikan
sistem basis data. Hal ini merupakan tanggung jawab DBA bersama desainer basis data.
Pernyataan dalam DDL (data definition language) termasuk SDL (storage definition
language) dari DBMS terpilih dikompilasi dan digunakan untuk membuat skema basis
data dan file basis data (kosong). Basis data dapat kemudian dipopulasikan dengan
data. Jika data diubah dari sistem komputerisasi sebelumnya, rutin konversi diperlukan
untuk format kembali data untuk menyimpan ke basis data baru.
By
HendraNet
http://www.hendra-jatnika.web.id
40. BAB 2 DESAIN BASIS DATA 39
Transaksi basis data harus diimplementasikan dengan aplikasi yang dibuat
programming berdasarkan spesifikasi konseptual dari transaksi dan kemudian menulis
dan melakukan uji coba kode porgram dengan perintah DML. Jika transaksi siap dan
data disimpan ke basis data, tahap rancangan dan implementasi selesai dan tahap operasi
dari sistem basis data dimulai.
RINGKASAN:
• Terdapat aturan system informasi dalam organisasi, system basis data dilihat
sebagai bagian system informasi dalam aplikasi berskala besar.
• Basis data sebagai manajemen resourse informasi dalam organisasi dan
kelangsungan hidupnya harus tetap berjalan.
• Terdapat 6 tahap dalam proses perancangan. Tiga tahap yang umum dalam
rancangan basis data adalah rancangan konseptual, rancangan logika (pemetaan
model data) dan rancangan fisik. Sedangkan tahap inisial adalah koleksi dan
analisa kebutuhan yang biasanya termasuk dalam tahap pra desain.
• Ada beberapa criteria organisasi dalam pemilihan DBMS
• Jika permasalahan performansi terdeteksi dan aplikasi baru diaplikasikan,
rancangan harus dimodifikasi
• Pada basis data relasional, factor yang berakibat pada keputusan rancangan basis
data fisik dan mnyediakan tuntunan pemilihan alternative rancangan desain
By
HendraNet
http://www.hendra-jatnika.web.id
41. BAB 2 DESAIN BASIS DATA 40
LATIHAN SOAL :
1. Sebutkan 6 tahap perancangan basis data!
2. Manakah dari 6 tahap tersebut sebagai aktifitas utama dalam proses perancangan
basis data ? Mengapa ?
3. Mengapa perancangan skema dan aplikasi dilakukan secara parallel ?
4. Mengapa digunakan model data implementation-independent selama perancangan
skema konseptual ?
5. Mengapa diperlukan koleksi dan analisa kebutuhan ?
6. Buatlah aplikasi actual dari suatu system basis data. Tentukan kebutuhan dari level
pemakai yang berbeda dalam hal kebutuhan data, tipe query dan transaksi yang
diproses.
7. Bagaimana karakteristik dari model data untuk rancangan skema konseptual harus
diproses ?
8. Apa perbedaan dua pendekatan utama dalam rancangan skema konseptual
9. Strategi apa yang digunakan untuk merancang skema konseptual dari kebutuhan ?
10. Sebutkan langkah-langkah view integration ke rancangan skema konseptual.
11. Sebutkan factor untuk memperlancar pemilihan paket DBMS untuk system
informasi dalam organisasi.
12. Apa yang dimaksud pemetaan data model system-independent ? Apa perbedaannya
dengan system-dependent ?
By
HendraNet
http://www.hendra-jatnika.web.id
42. 41
Bab3
Query Lanjutan
POKOK BAHASAN:
Subquery dan penggunaannya
Subquery dengan banyak kolom
Pairwise Comparison SubQuery
NonPairwise Comparison SubQuery
Penggunaan Query dalam Klausa FROM
Ekspresi Scalar
Korelasi SubQuery dan penggunaannya
Penggunaan Query dengan Klausa WITH
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan :
Dapat menulis subquery dengan banyak kolom
Dapat menggambarkan dan menjelaskan karakteristik dari subqueries pada saat
didapatkan nilai NULL
Dapat menulis subquery dalam klausa FROM
Dapat menggunakan scalar subqueries dalam SQL
Dapat menggambarkan tipe dari persoalan yang dapat dipecahkan dengan
menggunakan sub query yang berkorelasi.
Dapat menulis subquery yang berkorelasi.
Melakukan Update dan Delete baris dengan menggunakan subqueries yang
berkorelasi.
Dapat menggunakan operator EXISTS dan NOT EXISTS
Dapat menggunakan klausa WITH
By
HendraNet
http://www.hendra-jatnika.web.id
43. BAB 3 QUERY LANJUTAN 42
3.1. TABEL YANG DIGUNAKAN PADA PEMBAHASAN
Bagian ini menjelaskan mengenai tabel yang digunakan pada pembahasan bab
’Query Lanjutan’.
Ada 3 buah tabel yang digunakan masing-masing memiliki struktur sebagai
berikut :
1. Tabel DEPARTMENTS
2. Tabel EMPLOYEES
By
HendraNet
http://www.hendra-jatnika.web.id
44. BAB 3 QUERY LANJUTAN 43
3. Tabel JOB_HISTORY
3.2. APA ITU SUBQUERY ?
Bagian ini membahas tentang penggunaan subquery dalam Query Lanjutan. Apa
yang disebut dengan SubQuery ? Subquery adalah statement SELECT yang
dilampirkan sebagai klausa dalam SQL Statement yang lain.
Gambar 3-1: Subquery dalam Main Query
Pada gambar diatas, subquery (inner query) dijalankan sekali sebelum main
query. Kemudian hasil dari subquery digunakan oleh main query (outer query).
Berikut posisi penulisan subquery dalam SQL command :
SELECT ...
FROM ...
WHERE ...
(SELECT ...
FROM ...
WHERE ...)
MainMain
queryquery
SubquerySubquery
SELECT select_list
FROM table
WHERE expr operator (SELECT select_list
FROM table);
By
HendraNet
http://www.hendra-jatnika.web.id
45. BAB 3 QUERY LANJUTAN 44
3.3 PENGGUNAAN SUBQUERY
Subquery mengembalikan nilai ke main query. Subquery digunakan untuk
menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui (unknown
values). Berikut ini diberikan contoh penggunaan subquery.
Query diatas akan menampilkan nama pegawai yang gajinya lebih dari pegawai
dengan nomer pegawai 149. Sebelumnya, gaji dari pegawai dengan nomer pegawai 149
tidak diketahui, untuk itu kita tempatkan sebagai subquery agar nilai yang tidak
diketahui tersebut dapat diketahui dan pada ilustrasi gambar diatas nilai gaji dari
pegawai 149 adalah 10500.
3.4. SUBQUERY BANYAK KOLOM
Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan
dengan nilai dari subquery multiple-row dan multiple-column. Berikut ini contoh
pembandingan dengan banyak kolom dan baris :
SELECT last_name
FROM employees
WHERE salary >
(SELECT salary
FROM employees
WHERE employee_id = 149) ;
1050010500
Main query
WHERE (MANAGER_ID, DEPARTMENT_ID) IN
Subquery
100 90
102 60
124 50
By
HendraNet
http://www.hendra-jatnika.web.id
46. BAB 3 QUERY LANJUTAN 45
3.5. PEMBANDINGAN KOLOM
Pembandingan kolom dalam subquery banyak kolom dapat berupa :
• Pembandingan berpasangan (Pairwise Comparison SubQuery)
• Pembandingan tidak berpasangan (NonPairwise Comparison SubQuery)
3.5.1. PAIRWISE COMPARISON SUBQUERY
Berikut contoh pembandingan berpasangan untuk menampilkan detail dari data
pegawai yang dimanajeri oleh manajer dan department yang sama dengan yang dimiliki
oleh nomer pegawai 178
3.5.2. NONPAIRWISE COMPARISON SUBQUERY
Berikut contoh pembandingan tidak berpasangan untuk menampilkan detail dari
data pegawai yang dimanajeri oleh manager yang sama dengan pegawai dengan nomer
pegawai 174 atau 141 dan bekerja dalam departement yang sama dengan pegawai yang
memiliki nomer pegawai 174 atau 141.
SELECT employee_id, manager_id, department_id
FROM employees
WHERE (manager_id, department_id) IN
(SELECT manager_id, department_id
FROM employees
WHERE employee_id IN (178,174))
AND employee_id NOT IN (178,174);
SELECT employee_id, manager_id, department_id
FROM employees
WHERE manager_id IN
(SELECT manager_id
FROM employees
WHERE employee_id IN (174,141))
AND department_id IN
(SELECT department_id
FROM employees
WHERE employee_id IN (174,141))
AND employee_id NOT IN(174,141);
By
HendraNet
http://www.hendra-jatnika.web.id
47. BAB 3 QUERY LANJUTAN 46
3.6. PENGGUNAAN QUERY DALAM KLAUSA FROM
Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer.
Query semacam ini dikenal juga dengan istilah inline view, karena tidak membentuk
object database. Berikut ini contoh penggunaan Query dalam klausa FROM.
Query diatas menampilkan nama dan gaji dari pegawai yang gajinya lebih besar
dari rata-rata gaji pegawai pada departemen tempat dia bekerja.
3.7. EKSPRESI SCALAR SUBQUERY
Ekspresi scalar subquery adalah subquery yang mengembalikan hanya satu nilai
kolom dari satu baris. Scalar subquery pada standart SQL-92 hanya terbatas pada :
• SELECT Statement (klausa FROM dan WHERE saja)
• Daftar VALUE dari statement INSERT
Pada standart SQL-99, scalar subqueries dapat diguanakan dalam :
• Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE.
• Semua klausa dari SELECT Statement kecuali GROUP BY.
SELECT a.last_name, a.salary,
a.department_id, b.salavg
FROM employees a, (SELECT department_id,
AVG(salary) salavg
FROM employees
GROUP BY department_id) b
WHERE a.department_id = b.department_id
AND a.salary > b.salavg;
By
HendraNet
http://www.hendra-jatnika.web.id
48. BAB 3 QUERY LANJUTAN 47
Berikut ini contoh penggunaan scalar subquery dalam ekspresi CASE :
Berikut ini contoh penggunaan scalar subquery dalam klausa ORDER BY :
3.8. KORELASI SUBQUERY
Korelasi SubQuery digunakan untuk pemrosesan baris per baris. Tiap-tiap
subquery dijalankan sekali untuk setiap baris dari outer query.
Prosesnya sebagai berikut :
Gambar 3-2 : Proses Korelasi Subquery
SELECT employee_id, last_name,
(CASE
WHEN department_id =
THEN 'Canada' ELSE 'USA' END) location
FROM employees;
(SELECT department_id FROM departments
WHERE location_id = 1800)
2020
SELECT employee_id, last_name
FROM employees e
ORDER BY (SELECT department_name
FROM departments d
WHERE e.department_id = d.department_id);
AMBIL
Baris dari outer query
JALANKAN
inner query dengan menggunakan nilai baris kandidat
GUNAKAN
Nilai dari inner query untuk qualify /
disqualify baris kandidat
By
HendraNet
http://www.hendra-jatnika.web.id
49. BAB 3 QUERY LANJUTAN 48
Pada gambar 3-2, proses korelasi dimulai dengan mengambil baris dari outer
query, kemudian inner query dijalankan dengan menggunakan nilai baris kandidat,
kemudian nilai dari inner query digunakan untuk melakukan kualifikasi atau
mendiskualifikasi baris kandidat.
Berikut ini cara penulisan dari Korelasi SubQuery :
Pada gambar diatas, subquery merefer ke kolom dari tabel yang ada pada parent
atau outer query.
Berikut ini contoh penggunaan korelasi subquery untuk mencari pegawai yang
penghasilannya melebihi rata-rata penghasilan pada departemen tempat mereka bekerja.
Berikut ini contoh yang lain dari korelasi subquery yaitu untuk menampilkan
pegawai yang pernah berganti job maksimal dua kali.
SELECT column1, column2, ...
FROM table1
WHERE column1 operator
(SELECT colum1, column2
FROM table2
WHERE expr1 =
.expr2);
outer
outer
SELECT last_name, salary, department_id
FROM employees outer
WHERE salary >
Setiap saat baris dari
outer query diproses,
maka inner query
dievaluasi.
(SELECT AVG(salary)
FROM employees
WHERE department_id =
outer.department_id) ;
By
HendraNet
http://www.hendra-jatnika.web.id
50. BAB 3 QUERY LANJUTAN 49
Korelasi Subquery juga dapat digunakan untuk meng-update baris pada satu
table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan
Korelasi Update.
Berikut cara penulisan Korelasi Update :
Lakukan denormalisasi pada table EMPLOYEES dengan menambahkan satu
kolom pada tabel EMPLOYEES untuk menyimpan nama departemen.
Kemudian isi dari kolom nama departemen didapatkan dari tabel
DEPARTMENTS dengan menggunakan Korelasi Update :
SELECT e.employee_id, last_name,e.job_id
FROM employees e
WHERE 2 <= (SELECT COUNT(*)
FROM job_history
WHERE employee_id = e.employee_id);
UPDATE table1 alias1
SET column = (SELECT expression
FROM table2 alias2
WHERE alias1.column =
alias2.column);
By
HendraNet
http://www.hendra-jatnika.web.id
51. BAB 3 QUERY LANJUTAN 50
Korelasi Subquery juga dapat digunakan untuk menghapus baris pada satu table
berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan
Korelasi Delete.
Berikut cara penulisan Korelasi Delete :
Berikut contoh penggunaan Korelasi DELETE untuk menghapus baris-baris dari
tabel EMPLOYEES yang juga terdapat pada tabel EMP_HISTORY.
3.9. PENGGUNAAN OPERATOR EXIST DAN NOT EXIST
Operator EXISTS dan NOT EXIST digunakan untuk menguji keberadaan dari
baris dalam himpunan hasil dari subquery.
Jika ditemukan, maka :
• pencarian tidak dilanjutkan dalam inner query dan kondisi ditandai TRUE.
Jika tidak ditemukan, maka :
• Kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.
Berikut penggunaan operator EXISTS untuk mencari pegawai yang memiliki
sedikitnya satu orang bawahan.
DELETE FROM table1 alias1
WHERE column operator
(SELECT expression
FROM table2 alias2
WHERE alias1.column = alias2.column);
DELETE FROM employees E
WHERE employee_id =
(SELECT employee_id
FROM emp_history
WHERE employee_id = E.employee_id);
By
HendraNet
http://www.hendra-jatnika.web.id
52. BAB 3 QUERY LANJUTAN 51
Berikut contoh penggunaan operator NOT EXIST untuk menampilkan semua
departemen yang tidak mempunyai pegawai.
3.10. PENGGUNAAN KLAUSA WITH
Dengan menggunakan klausa WITH, kita dapat menggunakan blok query yang
sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query.
Klausa WITH mendapatkan hasil dari blok query dan menyimpannya dalam tablespace
temporer kepunyaan user. Klausa WITH dapat meningkatkan performansi.
SELECT employee_id, last_name, job_id, department_id
FROM employees outer
WHERE EXISTS ( SELECT 'X'
FROM employees
WHERE manager_id =
outer.employee_id);
SELECT department_id, department_name
FROM departments d
WHERE NOT EXISTS (SELECT 'X'
FROM employees
WHERE department_id
= d.department_id);
By
HendraNet
http://www.hendra-jatnika.web.id
53. BAB 3 QUERY LANJUTAN 52
Berikut ini contoh penggunaan klausa WITH :
Contoh penggunaan klausa WITH diatas digunakan untuk menampilkan nama
departemen dan total gaji untuk tiap departemen yang memiliki total gaji lebih besar
dari gaji rata-rata pada sembarang department.
RINGKASAN:
Subquery digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai
yang tidak diketahui (unknown values)
Pada subquery dengan banyak kolom, tiap baris dari main query dibandingkan
dengan nilai dari subquery multiple-row dan multiple-column.
Pembandingan kolom dalam subquery banyak kolom dapat berupa pembandingan
berpasangan (pairwise comparison) dan tidak berpasangan (nonpairwise
comparison).
Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer,
dan dikenal juga dengan istilah inline view.
Korelasi SubQuery digunakan untuk pemrosesan baris per baris.
Klausa WITH dapat menggunakan blok query yang sama dalam statement SELECT
pada saat terjadi lebih dari sekali dalam complex query.
WITH
dept_costs AS (
SELECT d.department_name, SUM(e.salary) AS dept_total
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY d.department_name),
avg_cost AS (
SELECT SUM(dept_total)/COUNT(*) AS dept_avg
FROM dept_costs)
SELECT *
FROM dept_costs
WHERE dept_total >
(SELECT dept_avg
FROM avg_cost)
ORDER BY department_name;
By
HendraNet
http://www.hendra-jatnika.web.id
54. BAB 3 QUERY LANJUTAN 53
LATIHAN SOAL :
1) Buat query untuk menampilkan nama, nomer departemen, dan gaji dari pegawai
yang yang memiliki nomer departemen dan gaji yang sama dengan nomer
departemen dan gaji dari pegawai yang memiliki komisi.
2) Buat query untuk menampilkan nama pegawai, nama departemen, dan gaji dari
pegawai yang memiliki gaji dan komisi yang sama dengan gaji dan komisi dari
pegawai yang memiliki location ID 1700.
3) Buat query untuk menampilkan nama pegawai, tanggal mulai masuk kerja (hire
date), dan gaji untuk semua pegawai yang memiliki gaji dan komisi seperti yang
dimiliki oleh pegawai yang bernama Kochhar.
Note: Data Kochhar tidak ditampilkan dalam hasil query.
4) Buat query untuk menampilkan detail dari nomer pegawai, nama pegawai dan
nomer pegawai yang sama dengan pegawai yang bertempat tinggal di kota yang
nama kotanya diawali dengan huruf T.
5) Buat query untuk menampilkan data semua pegawai yang memiliki gaji yang lebih
dari rata-rata gaji pada departemen tempat mereka bekerja. Data yang ditampilkan
yaitu nama pegawai, gaji, nomer departemen, dan rata-rata gaji pada departemen
tempat mereka bekerja. Urutkan berdasarkan rata-rata gaji.
6) Tampilkan semua pegawai yang bukan supervisor
a. Cara pertama gunakan operator NOT EXISTS.
b. Apakah persoalan dapat dipecahkan dengan menggunakan operator NOT IN? Jika
bisa bagaimana caranya, dan jika tidak bisa mengapa ?
(Supervisor adalah pegawai yang punya bawahan pegawai yang lain => employee_id
nya menjadi manager_id dari pegawai yang lain)
7) Buat query untuk menampilkan nama pegawai yang gajinya kurang dari rata-rata
gaji pada departemen tempat dia bekerja.
8) Buat query untuk menampilkan nama dari pegawai yang memiliki satu atau lebih
kolega (teman satu departemen) dimana kolega tersebut masuk lebih akhir tapi
memiliki gaji lebih tinggi.
By
HendraNet
http://www.hendra-jatnika.web.id
55. BAB 3 QUERY LANJUTAN 54
9) Buat query untuk menampilkan nomer pegawai, nama pegawai dan nama
departemen dari semua pegawai yang ada.
Note: Gunakan scalar subquery untuk mendapatkan nama departemen dalam statemen
SELECT.
10) Buat query untuk menampilkan nama departemen dari tiap departemen yang
memiliki total gaji diatas 1/8 dari total gaji keseluruhan pada perusahaan. Gunakan
klausa WITH untuk menulis query tersebut. Beri nama SUMMARY.
11) Buat query untuk menampilkan peagwai yang memiliki gaji yang lebih tinggi dari
gaji semua sales managers (JOB_ID = 'SA_MAN'). Urutkan berdasarkan jumlah
gaji dari tinggi ke rendah.
By
HendraNet
http://www.hendra-jatnika.web.id
56. 55
Bab4
Optimasi Query
POKOK BAHASAN:
Optimasi Perintah SQL
Informasi Jalur Akses Query
Faktor-faktor yang berpengaruh terhadap kecepatan akses data
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami latar belakang diperlukannya optimasi query
Memahami cara melakukan optimasi perintah SQL
Memahami faktor-faktor yang berpengaruh terhadap kecepatan akses data
4.1. PENDAHULUAN
Data yang tersimpan dalam database semakin lama akan semakin besar ukuran atau
volumenya. Kalau tidak didukung dengan kecepatan akses yang memadai maka akan
semakin menurun unjuk kerjanya. Ukuran unjuk kerja dalam hal ini kecepatan akses
data dipengaruhi oleh banyak faktor. Pada bab ini akan membahas tentang optimasi
query serta faktor-faktor lain yang berpengaruh terhadap optimalisasi kecepatan akses
data.
By
HendraNet
http://www.hendra-jatnika.web.id
57. BAB 4 OPTIMASI QUERY 56
4.2. OPTIMASI PADA PERINTAH SQL
Desain aplikasi saja tidak cukup untuk meningkatkan unjuk kerja harus didukung
dengan optimasi dari perintah SQL yang digunakan pada aplikasi tersebut. Dalam
mendesain database, seringkali lokasi fisik data tidak menjadi perhatian penting.
Karena hanya desain logik saja yang diperhatikan. Padahal untuk menampilkan hasil
query dibutuhkan pencarian yang melibatkan struktur fisik penyimpanan data. Inti dari
optimasi query adalah meminimalkan “jalur” pencarian untuk menemukan data yang
disimpan dalam lokasi fisik.
Index pada database digunakan untuk meningkatkan kecepatan akses data. Pada
saat query dijalankan, index mencari data dan menentukan nilai ROWID yang
membantu menemukan lokasi data secara fisik di disk. Akan tetapi penggunaan index
yang tidak tepat, tidak akan meningkatkan unjuk kerja dalam hal ini kecepatan akses
data.
Misal digunakan index yang melibatkan tiga buah kolom yang mengurutkan
kolom menurut kota, propinsi dan kode pos dari tabel karyawan, sebagai berikut :
CREATE INDEX idx_kota_prop_kodepos
ON karyawan(kota, propinsi, kode_pos)
TABLESPACE INDX;
Kemudian user melakukan query sebagai berikut :
SELECT * FROM karyawan WHERE propinsi=’Jawa Barat’;
Pada saat melakukan query ini, index tidak akan digunakan karena kolom pertama
(kota) tidak digunakan dalam klausa WHERE. Jika user sering melakukan query ini,
maka kolom index harus diurutkan menurut propinsi. Selain itu, proses pencarian data
akan lebih cepat jika data terletak pada block tabel yang berdekatan daripada harus
mencari di beberapa datafile yang terletak pada block yang berbeda.
Misal pada perintah SQL berikut ini :
SELECT * FROM karyawan
WHERE id BETWEEN 1010 AND 2010;
By
HendraNet
http://www.hendra-jatnika.web.id
58. BAB 4 OPTIMASI QUERY 57
Query ini akan melakukan “scan” terhadap sedikit data block jika tabel karyawan
diatas diurutkan berdasarkan kolom id. Untuk mengurutkan berdasarkan kolom yang
berbeda-beda maka tabel disimpan dalam flat file, kemudian tabel diekspor dan
diurutkan sesuai kebutuhan.
Alternatif yang lain, bisa digunakan perintah untuk membuat tabel lain yang
memiliki urutan yang berbeda dari tabel asal, seperti perintah SQL berikut :
CREATE TABLE karyawan_urut
AS SELECT * FROM karyawan
ORDER BY id;
Pada SQL diatas, tabel karyawan_urut berisi data yang sama dengan tabel karyawan
hanya datanya terurut berdasarkan kolom id.
4.3. PERENCANAAN EKSEKUSI
Bagaimana cara melihat jalur akses yang akan digunakan database saat
melakukan query ? Pada Database Oracle, informasi ini dapat dilihat dengan
menggunakan perintah explain plan, yang akan memberi informasi tentang rencana
eksekusi dari suatu query. Informasi ini disimpan dalam tabel PLAN_TABLE yang
terdapat di schema user yang mengeksekusi perintah tersebut.
Sebelum melakukan perintah explain plan, terlebih dahulu buat table
PLAN_TABLE dengan menggunakan script utlxplan.sql yang diambil dari
%ORACLE_HOME%RDBMSADMIN.
Setelah itu table PLAN_TABLE dapat digunakan seperti contoh berikut :
SQL> explain plan
Set statement_id=’test1’
Into plan_table for
Select * from karyawan where gaji=2000000;
Dalam PLAN_TABLE rencana eksekusi diatas dikenal dengan nama test1 yang
terdefinisi pada kolom statement_id.
By
HendraNet
http://www.hendra-jatnika.web.id
59. BAB 4 OPTIMASI QUERY 58
Untuk melihat rencana eksekusi dari test1, digunakan perintah SELECT berikut :
SELECT LPAD(’ ’,2*Level)||Operation||’ ’||Options||’ ’||Object_Name Q_Plan
FROM plan_table
WHERE statement_id=’test1’
CONNECT BY PRIOR id=parent_id AND statement_id=’test1’
START WITH id=0 AND statement_id=’test1’;
Contoh hasil dari eksekusi query tersebut :
Q_PLAN
--------------------------------------------------------------------
SELECT STATEMENT
TABLE ACCESS FULL KARYAWAN
Output tersebut dibaca mulai dari yang indent-nya paling dalam yaitu : TABLE
ACCESS FULL KARYAWAN. Dikarenakan klausa WHERE melibatkan kolom gaji
namun kolom gaji tidak ada index-nya, maka Oracle melakukan full table scan. Setelah
seluruh tabel karyawan selesai dibaca, selanjutnya adalah SELECT STATEMENT yang
berfungsi untuk menampilkan hasil query.
4.4. FAKTOR LAIN YANG BERPENGARUH TERHADAP KECEPATAN
AKSES DATA
Faktor lain yang berpengaruh terhadap kecepatan akses data, tidak hanya terletak
pada optimasi perintah SQL, tapi terhadap hal-hal lain yang berpengaruh. Diantaranya
adalah optimasi aplikasi dan penggunaan cluster dan index. Hal yang akan dibahas
dalam optimasi query berikut ini tidak melibatkan penggunaan komponen yang ada
dalam Arsitektur database engine, misal pada database Oracle kecepatan akses data
dipengaruhi oleh penyesuaian pada shared pool, buffer cache, redo log buffer dan sistem
operasi yang digunakan.
By
HendraNet
http://www.hendra-jatnika.web.id
60. BAB 4 OPTIMASI QUERY 59
4.4.1. OPTIMASI APLIKASI
Dalam pembuatan aplikasi, yang perlu mendapat perhatian adalah apakah akses
terhadap data sudah efisien. Efisien dalam hal penggunaan obyek yang mendukung
kecepatan akses, seperti index atau cluster. Kemudian juga bagaimana cara database di-
desain. Apakah desain database sudah melakukan normalisasi data secara tepat.
Kadangkala normalisasi sampai level yang kesekian, tidak menjamin suatu
desain yang efisien. Untuk membuat desain yang lebih tepat, kadang setelah melakukan
normalisasi perlu dilakukan denormalisasi. Misalnya tabel yang hubungannya one-to-
one dan sering diakses bersama lebih baik disatukan dalam satu tabel.
4.4.2. CLUSTER DAN INDEX
Cluster adalah suatu segment yang menyimpan data dari tabel yang berbeda
dalam suatu struktur fisik disk yang berdekatan. Konfigurasi ini bermanfaat untuk
akses data dari beberapa tabel yang sering di-query. Penggunaan cluster secara tepat
dilaksanakan setelah menganalisa tabel-tabel mana saja yang sering di-query secara
bersamaan menggunaan perintah SQL join.
Jika aplikasi sering melakukan query dengan menggunakan suatu kolom yang
berada pada klausa WHERE, maka harus digunakan index yang melibatkan kolom
tersebut. Penggunaan index yang tepat bergantung pada jenis nilai yang terdapat dalam
kolom yang akan diindex. Dalam RDBMS Oracle, index B-Tree digunakan untuk
kolom yang mengandung nilai yang cukup bervariasi, sedangkan untuk nilai yang tidak
memiliki variasi cukup banyak, lebih baik menggunakan index bitmap.
By
HendraNet
http://www.hendra-jatnika.web.id
61. BAB 4 OPTIMASI QUERY 60
RINGKASAN:
• Data yang tersimpan dalam jumlah yang sangat besar, Terdapat aturan system
informasi dalam organisasi, system basis data dilihat sebagai bagian system
informasi dalam aplikasi berskala besar.
• Untuk meningkatkan unjuk kerja tidak hanya desain logik saja yang diperhatikan
tapi juga struktur fisik penyimpanan data.
• Penggunaan Index pada database secara tepat, dapat digunakan untuk
meningkatkan kecepatan akses data.
• Informasi tentang jalur akses yang digunakan oleh database untuk melaksanakan
query dalam database Oracle dapat dengan menggunakan perintah explain plan.
• Selain optimasi perintah SQL, faktor lain yang berpengaruh terhadap kecepatan
akses data adalah optimasi aplikasi dan penggunaan cluster dan index.
• Pada sebuah database engine semisal pada database Oracle kecepatan akses data
dipengaruhi oleh beberapa komponen arsitektur pembentuknya seperti shared
pool, buffer cache, dan redo log buffer.
• Optimasi aplikasi tergantung pada efisiensi penggunaan obyek yang mendukung
kecepatan akses seperti index atau cluster, dan normalisasi data pada desain
database.
LATIHAN SOAL :
1. Apa latar belakang dari diperlukannya optimalisasi kecepatan akses data ?
2. Optimasi query dalam hubungannya dengan desain database melibatkan dua hal,
yaitu ….. dan ……
3. Proses pencarian data yang telah diindeks akan lebih cepat jika data yang dicari
terletak pada ………………
4. Bagaimana cara melihat jalur akses yang akan digunakan database saat melakukan
query ? Tunjukkan tahap-tahap yang digunakan untuk melakukan hal tersebut !
5. Sebutkan factor-faktor lain yang berpengaruh terhadap kecepatan akses data selain
optimasi pada perintah SQL !
6. Beberapa database engine melibatkan komponen pada arsitekturnya untuk
disesuaikan agar akses data lebih cepat dan efisien, berikan contohnya !
By
HendraNet
http://www.hendra-jatnika.web.id
62. 61
Bab5
Database Trigger
POKOK BAHASAN:
Pembuatan dan Penggunaan Trigger
Statement trigger
Row Trigger
Menggunakan Old dan New Qualifiers
Klausa WHEN pada trigger
Perintah-perintah umum pada Trigger
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami macam-macam tipe trigger
Memahami trigger dan penggunaannya
Dapat membuat database trigger
Memahami database trigger yang dapat mengaktifkan sebuah aturan
Menghapus database trigger
5.1. PENDAHULUAN
Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,
skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event.
Tipe dari trigger adalah :
• Application trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
sebuah aplikasi
• Database trigger : diaktifkan pada saat terjadi event yang berhubungan dengan
data (seperti operasi DML) atau event yang berhubungan dengan sistem (semisal
logon atau shutdown) yang terjadi pada sebuah skema atau database.
By
HendraNet
http://www.hendra-jatnika.web.id
63. BAB 5 DATABASE TRIGGER 62
5.2. PENGGUNAAN TRIGGER
Trigger dibuat sesuai dengan keperluan. Ada kalanya trigger perlu dibuat, dan
kadangkala tidak perlu dibuat.
Trigger perlu dibuat pada saat :
• membentuk sebuah aksi tertentu terhadap suatu event
• Memusatkan operasi global
Trigger tidak perlu dibuat, jika :
• Fungsionalitas yang diperlukan suatu ada pada Oracle server
• Duplikat atau sama dengan fungsi trigger yang lain.
Prosedur bisa dibuat dalam database, kemudian prosedur tersebut dipanggil pada
trigger. Jika penggunaan trigger terlalu berlebihan, maka akan menyebabkan terjadi
sifat ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit
pemeliharaan dari aplikasi yang besar.
Gambar berikut ini menunjukkan ilustrasi dari penggunaan trigger :
Gambar 5.1. Penggunaan Trigger
Pada gambar tersebut, database trigger CHECK_SAL memeriksa nilai gaji pada
saat suatu aplikasi mencoba untuk memasukkan baris baru ke dalam table
By
HendraNet
http://www.hendra-jatnika.web.id
64. BAB 5 DATABASE TRIGGER 63
EMPLOYEES. Nilai yang terletak pada jangkauan diluar kategori pekerjaan akan
diabaikan.
Sintak penulisan dari database trigger, berisi komponen berikut :
1. Trigger timing :
a. Untuk tabel : BEFORE, AFTER
b. Untuk view : INSTEAD OF
2. Trigger event : INSERT, UPDATE atau DELETE
3. Nama tabel : yaitu nama tabel atau view yang berhubungan dengan trigger
4. Tipe trigger : Baris atau Pernyataan (statement)
5. klausa WHEN : untuk kondisi pembatasan
6. trigger body : bagian prosedur yang dituliskan pada trigger
5.3. KOMPONEN TRIGGER
Komponen dari sebuah trigger ada 6 (enam), yaitu : trigger timing, trigger event,
nama tabel, tipe trigger, klausa WHEN, dan trigger body. Berikut ini penjelasan
komponen dari trigger.
Trigger timing adalah waktu kapan trigger diaktifkan. Ada tiga macam trigger
timing, yaitu :
• BEFORE : trigger dijalankan sebelum DML event pada tabel
• AFTER : trigger dijalankan setelah DML event pada tabel
• INSTEAD OF : trigger dijalankan pada sebuah view.
Trigger event ada 3 kemungkinan : INSERT, UPDATE atau DELETE.
Pada saat trigger event UPDATE, kita dapat memasukkan daftar kolom untuk
mengidentifikasi kolom mana yang berubah untuk mengaktifkan sebuah trigger (contoh
: UPDATE OF salary ... ). Jika tidak ditentukan, maka perubahannya akan berlaku
untuk semua kolom pada semua baris.
Tipe trigger ada 2 macam, yaitu :
• Statement : trigger dijalankan sekali saja pada saat terjadi sebuah event.
Statement trigger juga dijalankan sekali, meskipun tidak ada satupun baris yang
dipengaruhi oleh event yang terjadi.
By
HendraNet
http://www.hendra-jatnika.web.id
65. BAB 5 DATABASE TRIGGER 64
• Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya
sebuah event. Row trigger tidak dijalankan jika event dari trigger tidak
berpengaruh pada satu baris pun.
Trigger body mendefinisikan tindakan yang perlu dikerjakan pada saat
terjadinya event yang mengakibatkan sebuah trigger menjadi aktif.
5.4. CONTOH PEMBUATAN TRIGGER
Contoh berikut ini akan mengaktifkan sebuah trigger pada saat sebuah baris
tunggal dimanipulasi pada tabel :
Misal diberikan perintah DML untuk menyisipkan baris baru ke dalam tabel
sebagai berikut :
INSERT INTO departments (department_id, department_name, location_id)
VALUES (400, 'CONSULTING', 2400);
Ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
Gambar 5.2. Ilustrasi timing pada Trigger
Jika DML statement berlaku untuk lebih dari satu baris yang ada pada tabel
(multiple row), semisal :
UPDATE employees
SET salary = salary * 1.1
WHERE department_id = 30;
By
HendraNet
http://www.hendra-jatnika.web.id
66. BAB 5 DATABASE TRIGGER 65
Maka ilustrasi dari trigger timing untuk event tersebut adalah sebagai berikut :
5.5. DML STATEMENT TRIGGER
Berikut ini sintak atau cara penulisan untuk pembuatan DML Statement trigger :
CREATE [OR REPLACE] TRIGGER trigger_name
timing
event1 [OR event2 OR event3]
ON table_name
trigger_body
Berikut contoh pembuatan DML Statement trigger :
CREATE OR REPLACE TRIGGER secure_emp
BEFORE INSERT ON employees
BEGIN
IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR
(TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND '18:00')
THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data pada table
EMPLOYEES hanya diperbolehkan selama jam kerja');
END IF;
END;
/
Contoh trigger diatas akan membatasi penyisipan baris baru ke dalam table
EMPOYEES diperbolehkan hanya pada jam kerja mulai hari Senin sampai Jum’at. Jika
By
HendraNet
http://www.hendra-jatnika.web.id
67. BAB 5 DATABASE TRIGGER 66
user menyisipkan baris baru diluar ketentuan tersebut, missal pada hari SAbtu maka
akan tampil pesan kesalahan.
Perintah berikut ini akan menguji trigger SECURE_EMP dengan memberikan
perintah SQL berikut ini pada jam diluar jam kerja, sebagai berikut :
INSERT INTO employees (employee_id, last_name,first_name, email, hire_date,
job_id, salary, department_id)
VALUES (300, 'Smith', 'Rob', 'RSMITH', SYSDATE,'IT_PROG', 4500, 60);
Perintah tersebut akan memberikan pesan kesalahan :
5.6. MENGKOMBINASIKAN EVENT PADA TRIGGER
Beberapa event pada trigger bisa dikombinasikan dalam sebuah trigger dengan
menggunakan predikat kondisional INSERTING, UPDATING dan DELETING.
Berikut ini akan dibuat trigger yang menggunakan predikat kondisional INSERTING,
UPDATING dan DELETING untuk membatasi manipulasi data pada tabel
EMPLOYEES hanya diperbolehkan pada setiap jam kerja mulai hari Senin sampai
Jum’at.
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
IF (TO_CHAR (SYSDATE,'DY') IN ('SAT','SUN')) OR
(TO_CHAR (SYSDATE, 'HH24') NOT BETWEEN '08' AND '18')
THEN
IF DELETING THEN
RAISE_APPLICATION_ERROR (-20502,'You may delete from
EMPLOYEES table only during business hours.');
ELSIF INSERTING THEN
RAISE_APPLICATION_ERROR (-20500,'You may insert into
EMPLOYEES table only during business hours.');
ELSIF UPDATING ('SALARY') THEN
By
HendraNet
http://www.hendra-jatnika.web.id
68. BAB 5 DATABASE TRIGGER 67
RAISE_APPLICATION_ERROR (-20503,'You may update
SALARY only during business hours.');
ELSE
RAISE_APPLICATION_ERROR (-20504,'You may update
EMPLOYEES table only during normal hours.');
END IF;
END IF;
END;
5.7. ROW TRIGGER
Berikut ini sintak atau cara penulisan untuk membuat Row Trigger :
CREATE [OR REPLACE] TRIGGER trigger_name
timing
event1 [OR event2 OR event3]
ON table_name
[REFERENCING OLD AS old | NEW AS new]
FOR EACH ROW
[WHEN (condition)]
trigger_body
Contoh berikut ini akan dibuat row trigger dengan timing BEFORE untuk
membatasi operasi DML pada table EMPLOYEES hanya diperbolehkan untuk pegawai
yang memiliki kode pekerjaan ‘AD_PRES’ dan ‘AD_VP’ serta memiliki gaji kurang
dari 15000.
CREATE OR REPLACE TRIGGER restrict_salary
BEFORE INSERT OR UPDATE OF salary ON employees
FOR EACH ROW
BEGIN
IF NOT (:NEW.job_id IN ('AD_PRES', 'AD_VP'))
AND :NEW.salary > 15000
THEN
RAISE_APPLICATION_ERROR (-20202,'Employee
cannot earn this amount');
END IF;
END;
/
Jika kita mencoba memberikan perintah SQL sebagai berikut, maka akan ditampilkan
pesan kesalahan :
By
HendraNet
http://www.hendra-jatnika.web.id
69. BAB 5 DATABASE TRIGGER 68
UPDATE employees
SET salary = 15500
WHERE last_name = 'Russell';
5.8. MENGGUNAKAN OLD DAN NEW QUALIFIERS
Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data dapat
dirujuk dengan menggunakan OLD dan NEW qualifier. OLD dan NEW hanya
digunakan pada Row Trigger. OLD dan NEW menggunakan prefiks (:) untuk
pernyataan dalam perintah SQL. Jika qualifier ini terlibat dalam pembatasan kondisi
pada klausa WHEN, maka tidak digunakan prefiks (:).
Row triggers akan menurunkan unjuk kerja jika banyak dilakukan update pada
table yang cukup besar.
Contoh Trigger berikut ini menggunakan OLD dan NEW qualifier pada Row Trigger :
CREATE OR REPLACE TRIGGER audit_emp_values
AFTER DELETE OR INSERT OR UPDATE ON employees
FOR EACH ROW
BEGIN
INSERT INTO audit_emp_table (user_name, timestamp,
id, old_last_name, new_last_name, old_title,
new_title, old_salary, new_salary)
VALUES (USER, SYSDATE, :OLD.employee_id,
:OLD.last_name, :NEW.last_name, :OLD.job_id,
:NEW.job_id, :OLD.salary, :NEW.salary );
END;
/
Untuk memeriksa hasil dari pembuatan trigger diatas, diberikan perintah SQL sebagai
berikut :
INSERT INTO employees
(employee_id, last_name, job_id, salary, ...)
VALUES (999, 'Temp emp', 'SA_REP', 1000, ...);
UPDATE employees
SET salary = 2000, last_name = 'Smith'
WHERE employee_id = 999;
By
HendraNet
http://www.hendra-jatnika.web.id
70. BAB 5 DATABASE TRIGGER 69
Hasil dari perintah SQL tersebut adalah akan disimpan record perubahan pada
table AUDIT_EMP_TABLE sebagai hasil dari operasi Trigger :
SELECT user_name, timestamp, ... FROM audit_emp_table
5.9. PENGGUNAAN KLAUSA WHEN PADA TRIGGER
Untuk membatasi operasi trigger hanya pada baris yang memenuhi kondisi
tertentu, maka digunakan klausa WHEN. Berikut ini akan dibuat trigger pada tabel
EMPLOYEES yang menghitung komisi yang diterima oleh seorang pegawai pada saat
sebuah baris ditambahkan ke dalam tabel EMPLOYEES, atau pada saat dilakukan
modifikasi pada gaji pegawai.
CREATE OR REPLACE TRIGGER derive_commission_pct
BEFORE INSERT OR UPDATE OF salary ON employees
FOR EACH ROW
WHEN (NEW.job_id = 'SA_REP')
BEGIN
IF INSERTING
THEN :NEW.commission_pct := 0;
ELSIF :OLD.commission_pct IS NULL
THEN :NEW.commission_pct := 0;
ELSE
:NEW.commission_pct := :OLD.commission_pct + 0.05;
END IF;
END;
/
Pada klausa WHEN, penggunaan OLD dan NEW qualifier tidak dengan prefiks
(:). Untuk menggunakan NEW qualifier, gunakan BEFORE Row Trigger, jika timing
BEFORE pada trigger diatas diganti dengan AFTER, maka akan didapat pesan
kesalahan :
CREATE OR REPLACE TRIGGER derive_commission_pct*
ERROR at line 1:
ORA-04084: cannot change NEW values for this trigger type
By
HendraNet
http://www.hendra-jatnika.web.id
71. BAB 5 DATABASE TRIGGER 70
5.10. PERINTAH UMUM
Berikut ini perintah-perintah umum yang digunakan pada trigger.
Untuk mengaktifkan atau menonaktifkan database trigger, digunakan perintah :
ALTER TRIGGER trigger_name DISABLE | ENABLE
Untuk mengaktifkan atau menonaktifkan semua trigger yang berlaku untuk
sebuah tabel, digunakan perintah :
ALTER TABLE table_name DISABLE | ENABLE ALL
Untuk melakukan kompilasi ulang sebuah trigger, digunakan perintah :
ALTER TRIGGER trigger_name COMPILE
Untuk menghapus trigger dari database, digunakan perintah :
DROP TRIGGER trigger_name
Catatan : Semua trigger yang berlaku pada sebuah tabel akan dihapus pada saat tabel
tersebut dihapus dari database.
RINGKASAN:
• Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,
skema atau database yang dijalankan secara implicit pada saat terjadi event.
• Tipe dari trigger adalah : Application trigger (diaktifkan pada saat terjadi event
yang berhubungan dengan sebuah aplikasi) dan database trigger (diaktifkan pada
saat terjadi event yang berhubungan dengan data)
• Trigger dibuat pada saat yang tepat jika diperlukan yaitu untuk membentuk sebuah
aksi tertentu terhadap suatu event dan memusatkan operasi global
• Penggunaan trigger yang terlalu berlebihan akan menyebabkan terjadi sifat
ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit
pemeliharaan dari aplikasi yang besar.
• Trigger berisi komponen-komponen : trigger timing, trigger event, nama tabel, tipe
trigger, klausa WHEN dan trigger body.
• Beberapa event pada trigger bisa dikombinasikan dalam sebuah trigger dengan
menggunakan predikat kondisional INSERTING, UPDATING dan DELETING
• Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data dapat
dirujuk dengan menggunakan OLD dan NEW qualifier.
By
HendraNet
http://www.hendra-jatnika.web.id
72. BAB 5 DATABASE TRIGGER 71
LATIHAN SOAL :
1. Perubahan pada data hanya diperbolehkan selama jam kerja dari jam 8:45 pagi
sampai 17.30 , dari Senin hingga Jum’at. Buat stored procedure dengan nama
SECURE_DML untuk mencegah DML statement dijalankan diluar dari jam kerja,
dengan menampilkan pesan “Perubahan pada data hanya diperbolehkan hanya pada
jam kerja”
2. Buat statement trigger pada tabel JOBS untuk memanggil prosedur diatas.
3. Implementasikan trigger berikut pada table JOBS sehubungan dengan kenaikan gaji
pegawai. Buat stored procedure dengan nama UPD_EMP_SAL untuk mengupdate
jumlah gaji. Prosedur ini menerima dua parameter : job id dari gaji yang akan
diubah dan nilai minimum salary yang baru. Prosedur ini dijalankan dari trigger
yang dibuat pada table JOBS.
4. Lanjutan dari soal nomer 3, buat row trigger dengan nama
UPDATE_EMP_SALARY pada table JOBS yang memanggil prosedur
UPD_EMP_SAL, pada saat minimum gaji pada table JOBS diubah untuk suatu job
ID tertentu.
By
HendraNet
http://www.hendra-jatnika.web.id
73. 72
Bab6
Basis Data Client / Server
POKOK BAHASAN:
Pendahuluan
Arsitektur Client-Server
Pengaksesan Query pada Basis Data Client-Server
TUJUAN BELAJAR:
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
Memahami konsep basis data client-server.
Memahami arsitektur client- server
Memahami pengaksesan query pada basis data client-server dan bagaimana
perangkat lunak client-server.
6.1 PENDAHULUAN
Aplikasi basis data terdistribusi dikembangkan dalam bentuk arsitektur client-
server. Teknologi client-server berkembang secara cepat sebagai teknologi lanjut. Pada
beberapa waktu yang lalu, sangat sulit memprediksikan status saat ini teknologi client-
server yang terjadi saat ini. Hal ini sama sulitnya dengan memprediksi teknologi untuk
beberapa tahun ke depan. Beberapa faktor yang berpengaruh pada fungsi client atau
server atau keduanya, melibatkan perangkat keras dan perangkat lunak, protocol
network, teknologi LAN/WAN dan komunikasi. Penurunan biaya dari beberapa faktor
tersebut menyebabkan semakin besar kemungkinan mempunyai sistem yang kuat.
By
HendraNet
http://www.hendra-jatnika.web.id
74. BAB 6 BASIS DATA CLIENT-SERVER 73
6.2 ARSITEKTUR CLIENT-SERVER
Saat ini arsitektur client-server yang banyak digunakan dalam industri disebut
two-tier architecture. Pada arsitektur ini, server mengirim data dan client mengakses
data. Server memainkan peranan yang dominan pada arsitektur ini. Keuntungan sistem
ini adalah kesederhanaan dan kompatibilitas dengan sistem yang legal.
Arsitektur client-server yang dikembangkan kemudian adalah three-tier
architecture. Pada model ini, layer direpresentasikan sebagai host, server dan client.
Server memainkan peranan sebagai penengah dengan mengirim aturan bisnis (prosedur
atau constraint) yang digunakan untuk mengakses data dari host. Client berisi antar
muka GUI dan beberapa aplikasi tambahan mengenai aturan bisnis. Kemudian server
bertindak sebagai conduit of passing memproses data dari host ke client dimana
kemudian diproses atau difilter dan dipresentasikan ke pemakai dalam format GUI.
Antar muka pemakai, aturan dan pengaksesan data bertindak sebagai three tiers. Cient
biasanya dihubungkan ke server melalui LAN dan server dihubungkan ke host melalui
WAN. Client melakukan remote yang dihubungkan ke server melalui WAN juga.
Sistem ini sangat cocok untuk perusahaan besar dimana basis data terpusat dapat
disimpan dalam host dan biaya pembangunan LAN dan WAN dapat diatur dan
dioptimasi menggunakan teknologi yang baru untuk setiap bagian yang berbeda dalam
organisasi.
6.3 PENGAKSESAN QUERY PADA BASIS DATA CLIENT-SERVER
Bagaimana membagi fungsi DBMS antara client dan server tidak ada ketentuan.
Sehingga banyak pendekatan yang berbeda ditawarkan. Satu kemungkinan adalah
memasukkan fungsi dari DBMS terpusat pada level server. Sejumlah DBMS relasional
menggunakan pendekatan ini, dimana SQL server disediakan untuk client. Setiap client
harus menggunakan query SQL yang tepat dan menyediakan antar muka pemakai dan
fungsi antar muka untuk bahasa pemrograman. Karena SQL adalah bahasa standard
relasional, berbagai SQL server, meskipun disediakan oleh vendor yang berbeda, dapat
menerima perintah SQL. Client juga merujuk pada data dictionary yang didalamnya
By
HendraNet
http://www.hendra-jatnika.web.id