Perintah SQL untuk memberikan hak akses kepada USER01 agar dapat membaca tabel nilai adalah

Pada tutorial kali ini kita akan belajar bagaimana cara membuat atau memberi grant atau revoke hak akses (Privileges) pada user di SQL Server menggunakan syntax Transact SQL (T-SQL). Anda dapat memberi GRANT dan REVOKE hak akses pada berbagai objek database di SQL Server. Kali ini kita akan melihat bagaimana memberi dan menghapus hak akses pada tabel di SQL Server. Memberikan permissions dan menghapus permissions tidak terlalu sulit dilakukan di dalam SQL Server, hanya butuh beberapa waktu untuk menentukan permissions apa yang harus diterapkan.

Sebelumnya anda harus membuat user dahulu pada SQL Server, setelah itu baru kita bisa memberi Hak Akses. Berikutnya pastikan anda sudah membuat atau menjalankan script dibawah ini.


USE [nama_database] GO CREATE USER [nama_user] FOR LOGIN [nama_user]

Anda dapat memberi (Grant) berbagai hak akses ke tabel pada user. Hak akses ini bisa berupa kombinasi SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, atau ALL.

Sintaks untuk memberikan (Grant) hak akses (Privileges) pada tabel di SQL Server adalah: GRANT jenis_privileges ON nama_tabel TO nama_user; Berikut adalah keterangan dari sintaks diatas:
  1. jenis_privileges adalah jenis hak akses yang dapat diberikan atau dihapuskan 
  2. nama_tabel adalah nama object yang dalam kasus ini adalah nama tabel yang akan diberikan atau dihapuskan hak aksesnya
  3. nama_user adalah nama user yang akan diberikan atau dihapuskan hak aksesnya
Berikut adalah jenis privileges yang bisa digunakan:
PrivilegeKeterangan
SELECTKemampuan untuk menjalankan pernyataan SELECT pada tabel.
INSERTKemampuan untuk menjalankan pernyataan INSERT pada tabel.
UPDATEKemampuan untuk menjalankan pernyataan UPDATE pada tabel.
DELETEKemampuan untuk menjalankan pernyataan DELETE pada tabel.
REFERENCESKemampuan untuk membuat sebuah constraint yang mengacu pada tabel.
ALTERKemampuan untuk menjalankan pernyataan ALTER TABLE untuk merubah definisi tabel.
ALLSEMUA tidak memberikan semua izin untuk tabel. Sebaliknya, ia memberikan izin ANSI-92 yang merupakan SELECT, INSERT, UPDATE, DELETE, dan REFERENCES.
Contoh
Misalkan kita mempunyai sebuah database dengan nama sistem_akademik, sebelumnya kita telah membuat sebuah user SQL Server dengan nama akademik_mahasiswa. Pada database sistem_akademik terdapat sebuah tabel yang bernama tabel mahasiswa. Sekarang kita akan coba membuat atau memberikan hak akses select data pada tabel mahasiswa kepada user akademik_mahasiswa. Berikut adalah skripnya: GRANT SELECT ON sistem_akademik.dbo.mahasiswa TO akademik_mahasiswa; Jika anda ingin memberikan dua atau lebih hak akses pada user SQL Server tersebut anda dapat menambahkan tanda koma pada hak akses kedua dan setelahnya, berikut adalah contohnya. GRANT SELECT,INSERT,UPDATE ON sistem_akademik.dbo.mahasiswa TO akademik_mahasiswa; Jika anda ingin membuat atau memberikan jenis hak akses select,insert,update,delete dan references sekaligus anda bisa menggunakan jenis hak akses ALL, berikut adalah contohnya. GRANT ALL ON sistem_akademik.dbo.mahasiswa TO akademik_mahasiswa; Setelah anda membuat atau memberikan hak akses pada sebuah user SQL Server, anda mungkin perlu mencabut atau menghapus beberapa atau semua hak akses tersebut. Untuk melakukan hal tersebut, anda dapat menjalankan perintah REVOKE. Anda dapat mencabut atau menghapus kombinasi hak akses SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, atau ALL.

Sintaks

Sintaks untuk mencabut hak akses pada tabel di SQL Server adalah: REVOKE jenis_privileges ON nama_tabel FROM nama_user;
Contoh Misalkan pada database sistem_akademik yang telah kita buat sebelumnya, kita akan mencabut hak akses INSERT untuk tabel mahasiswa pada user akademik_mahasiswa, berikut adalah sintaksnya: REVOKE INSERT ON sistem_akademik.dbo.mahasiswa FROM akademik_mahasiswa;
Perintah SQL untuk memberikan hak akses kepada USER01 agar dapat membaca tabel nilai adalah

PENGONTROLAN BERBASIS KOMPUTER 1. Security Database Authorization Pemberian hak akses yang mengizinkan sebuah subyek mempunyai akses secara legal terhadap sebuah sistem atau obyek. Subyek 􀃆 user atau program Obyek 􀃆 database table, view, application, procedure, atau obyek lainnya yang dibuat di dalam sebuah sistem Jenis-jenis hak akses (privileges) • Penggunaan nama database yang spesifik • Select (retrieve) data • Membuat tabel (obyek lainnya) • Update data, delete data, insert data (bisa untuk kolom-kolom tertentu) • Menghasilkan output yang tidak terbatas dari operasi query (user tidak dibatasi untuk mengakses record tertentu) • Menjalankan prosedur khusus dan utilitas program • Membuat database • Membuat (dan memodifikasi) DBMS user identifiers dan authorized identifiers jenis lainnya • Anggota dari sebuah kelompok atau kelompok-kelompok user Views (Subschemas) Hasil yang dinamik dari satu atau lebih operasi relasi yang beroperasi pada relasi dasar untuk menghasilkan relasi lainnya. View merupakan virtual relation yang tidak secara nyata ada di dalam sebuah database, tetapi dihasilkan atas permintaan user secara khusus. Backing Up Proses yang secara periodik menyalin database dan menjurnal (dan memprogram) ke dalam media penyimpanan offline Journaling Proses penyimpanan dan pemeliharaan sebuah jurnal atau log seluruh perubahan terhadap database agar dapat merecover secara efektif jika terjadi kegagalan. Checkpointing Titik temu sinkronisasi antara database dan transaksi log file. Seluruh data yang disimpan di tempat sementara akan disimpan di media penyimpanan kedua. Integrity Pengontrolan integritas juga membantu memelihara sistem database yang aman dengan mencegah data dari invalid Encryption Penyandian (encoding) data dengan menggunakan algoritma khusus yang merubah data menjadi tidak dapat dibaca oleh program apapun tanpa mendeskripsikannya. 2. Concurrency Hampir semua DBMS adalah sistem multi user. Sistem seperti ini memerlukan mekanisme pengontrolan konkuren. Tujuan dari mekanisme ini adalah untuk menjamin bahwa transaksi-transaksi yang konkuren tidak saling menggangu operasinya masing-masing. Terdapat beberapa masalah yang akan timbul dalam menjalankan transaksitransaksi yang konkuren. Tiga masalah yang umum adalah : 1. Masalah kehilangan modifikasi 2. Masalah modifikasi sementara 3. Masalah analisis yang tidak konsisten Masalah Kehilangan Modifikasi Transaksi A Waktu Transaksi B = 􀃈 = Baca R t1 = = 􀃈 = = t2 Baca R = 􀃈 = Modifikasi R t3 = = 􀃈 = = t4 Modifikasi R = 􀃈 = • Transaksi A membaca R pada t1, transaksi B membaca R pada t2. Transaksi A memodifikasi R pada t3. • Transaksi B memodifikasi record yang sama pada t4. • Modifikasi dari transaksi A akan hilang karena transaksi B akan memodifikasi R tanpa memperhatikan modifikasi dari transaksi A pada t3. Sistem Basis Data Database Control Hal. 3 dari 10 Masalah Modifikasi Sementara Masalah ini timbul jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback). Transaksi A Waktu Transaksi B - 􀃈 - - t1 modifikasi R - 􀃈 - Baca R t2 - - 􀃈 - - t3 rollback - 􀃈 - • Transaksi B memodifikasi record R pada t1 • Transaksi A membaca R pada t2 • Pada saat t3 transaksi B dibatalkan • Maka transaksi A akan membaca record yang salah Transaksi A Waktu Transaksi B - 􀃈 - - t1 Modifikasi R - 􀃈 - Modifikasi R t2 - - 􀃈 - - t3 Rollback - 􀃈 - • Pada waktu t2 transaksi A memodifikasi R • Karena transaksi B dibatalkan pada waktu t3, maka transaksi A memodifikasi record yang salah. Masalah Analisis yang Tidak Konsisten Nilai 1 = 40 Nilai 2 = 50 Nilai 3 = 30 Transaksi A Waktu Transaksi B - 􀃈 - Baca nilai 1(40) t1 - juml = 40 - - 􀃈 - Baca nilai 2 (50) t2 - juml = 90 - - 􀃈 - - t3 Baca nilai 3 (30) - 􀃈 - - t4 Modifikasi nilai 3 - 30 􀃆 20 - 􀃈 - - t5 Baca nilai 1 (40) 􀃈 - t6 Modifikasi nilai 1 - 40 􀃆 50 􀃈 - t7 Commit - 􀃈 Baca nilai 3 (20) t8 juml = 110 (bukan 120) - 􀃈 • Transaksi A menjumlahkan nilai 1, nilai 2 dan nilai 3 • Transaksi B 􀃆 nilai 1 +10 ; nilai 3 - 10 • Pada waktu t8, transaksi A membaca nilai yang salah karena nilai 3 sudah dimodifikasi menjadi 20 ( transaksi B sudah melakukan commit sebelum transaksi A membaca nilai 3 ) Ket : • Commit adalah operasi yang menyatakan bahwa suatu transaksi sudah terselesaikan/ sukses (successfull end-of-transaction). • Rollback adalah operasi yang menyatakan bahwa suatu transaksi dibatalkan (unsuccessfull end-of-transaction). Locking Locking adalah salah satu mekanisasi pengontrol konkuren. Konsep dasar : pada saat suatu transaksi memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara mendadak, maka diperlukan kunci untuk record tersebut. Fungsi kunci (lock) adalah menjaga record tersebut agar tidak dimodifikasi transaksi lain. Cara kerja dari kunci : 1. Pertama kita asumsikan terdapat 2 macam kunci : - Kunci X : kunci yang eksklusif. - Kunci S : kunci yang digunakan bersama-sama. 2. Jika transaksi A menggunakan kunci X pada record R, maka permintaan dari transaksi B untuk suatu kunci pada R ditunda, dan B harus menungggu sampai A melepaskan kunci tersebut. 3. Jika transaksi A menggunakan kunci S pada record R, maka : a. Bila transaksi B ingin menggunakan kunci X, maka B harus menunggu sampai A melepaskan kunci tersebut. b. Bila transaksi B ingin menggunakan kunci S, maka B dapat menggunakan kunci S bersama A. Tabel Kunci : X S - X = kunci X X N N Y S = kunci S S N Y Y N = No - Y Y Y Y = Yes 4. Bila suatu transaksi hanya melakukan pembacaan saja, secara otomatis ia memerlukan kunci S 􀃆 baca (S) Bila transaksi tersebut ingin memodifikasi record maka secara otomatis ia memerlukan kunci X 􀃆 memodifikasi (X) Bila transaksi tersebut sudah menggunakan kunci S, setelah itu ia akan memodifikasi record, maka kunci S akan dinaikan ke level kunci X. 5. Kunci X dan kunci S akan dilepaskan pada saat synchpoint (synchronization point). Synchpoint menyatakan akhir dari suatu transaksi dimana basis data berada pada state yang konsisten. Bila synchpoint ditetapkan maka : - Semua modifikasi program menjalankan operasi commit atau rollback. - Semua kunci dari record dilepaskan. Masalah Kehilangan Modifikasi Transaksi A Waktu Transaksi B - 􀃈 - Baca R t1 - (kunci S) 􀃈 - - t2 Baca R - 􀃈 (kunci S) Modifikasi R t3 - (kunci X) 􀃈 - Tunggu 􀃈 - : t4 Modifikasi R : 􀃈 (kunci X) : 􀃈 Tunggu : 􀃈 : : 􀃈 : Tunggu 􀃈 Tunggu • Pada waktu t3, transaksi A memerlukan kunci X, maka transaksi A harus menunggu sampai B melepaskan kunci S. • Transaksi B juga harus menunggu pada t4 Maka tidak akan ada yang kehilangan modifikasi, tetapi terdapat keadaan baru yaitu DEADLOCK. Masalah Modifikasi Sementara. Transaksi A Waktu Transaksi B - 􀃈 - - t1 modifikasi R - 􀃈 (kunci X) Baca R t2 - kunci (S) 􀃈 - Tunggu 􀃈 - : t3 Synchpoint : 􀃈 (kunci X dilepas) Tunggu 􀃈 - Baca R kembali T4 - (kunci S) 􀃈 - Sistem Basis Data Database Control Hal. 7 dari 10 Transaksi A Waktu Transaksi B 􀃈 - t1 Modifikasi R - 􀃈 (kunci X) Modifikasi R t2 - kunci (X) 􀃈 - Tunggu 􀃈 - : t3 Synchpoint : 􀃈 (kunci X dilepas) Tunggu 􀃈 - Modifikasi R t4 - (kunci X) 􀃈 - • Transaksi A pada t2 tidak dapat dijalankan langsung, tetapi harus menunggu sampai B melepas kunci X. • Bila B sudah mencapai synchpoint, maka kunci X dilepaskan dan A dapat meneruskan prosesnya. • Maka transaksi A tidak akan terjasi kesalahan dalam membaca, karena sudah mencapai synchpoint. Masalah Analisa yang Tidak Konsisten Nilai 1 = 40 Nilai 2 = 50 Nilai 3 = 30 Transaksi A Waktu Transaksi B - 􀃈 - Baca nilai 1 (40) t1 - (kunci S) 􀃈 - jml = 40 􀃈 - - 􀃈 - Baca nilai 2 (50) t2 - (kunci S) 􀃈 - jml = 90 􀃈 - - t3 Baca nilai 3 (30) - 􀃈 (kunci S) - 􀃈 - - t4 Modifikasi nilai 3 - 􀃈 (kunci X) - 􀃈 30 􀃆 20 - 􀃈 - - t5 Baca nilai 1 (40) - 􀃈 (kunci S) - 􀃈 - - t6 Modifikasi nilai 1 - 􀃈 (kunci X) - 􀃈 Tunggu Baca nilai 3 (20) t7 : (kunci S) 􀃈 : Tunggu 􀃈 Tunggu : • Transaksi B pada t6 tidak diijinkan, karena memerlukan kunci X maka B harus menunggu sampai A melepaskan kunci S kepada nilai 1. • Pada t7 transaksi A juga tidak dapat langsung dilaksanakan, karena B menggunakan kunci X pada nilai 3. Maka A harus menunggu B melepaskan kunci X pada nilai 3. • Transaksi A akan membaca nilaiyang benar, tapi timbul masalah baru yaitu DEADLOCK. Time Stamping Salah satu alternatif mekanisme pengawasan konkuren yang dapat menghilangkan masalah deadlock adalah TIME STAMPING. Dalam skema ini tidak ada kunci yang digunakan sehingga tidak ada deadlock yang muncul. Time stamping untuk sebuah transaksi aksi merupakan suatu tanda pengenal yang unik yang menunjuk waktu mulai relatif dari transaksi. Time stamp dapat berupa pembacaan pada kinci internal pada waktu transaksi dimulai, dapat berupa nilai dari suatu penunjuk logical yang dapat bertambah setiap kali suatu transaksi baru dimulai. Dalam hal ini nilai time stamp dari setiap transaksi adalah unik dan menunjukkan bagaimana lamanya transaksi tersebut . Pengaruh dari time stamping adalah menentukan suatu urutan serial transaksi. Setiap item data terdiri dari sebuah lead time stamp yang memberikan time stamp transaksi terakhir untuk membawa item dan sebuah write time stamp yang memberikan transaksi terakhir untuk menuliskan / memperbaharui item. Masalah dapat timbul dengan time stamping : 1. Suatu transaksi memerintahkan untuk membaca sebuah item yang sudah diupdate oleh transaksi yang belakangan 2. Suatu transaksi memerintahkan untuk menulis sebuah item yang nilainya sudah dibaca / ditulis oleh transaksi yang belakangan 3. Recovery Recovery Facilities Sebuah DBMS sebaiknya menyediakan fasilitas-fasilitas berikut ini untuk membantu recovery : • Backup mechanism melakukan backup secara periodik terhadap database yang ada • Logging facilities Mencatat transaksi-transaksi dan perubahan-perubahan yang terjadi terhadap database. DBMS memelihara file khusus yang disebut Log (Journal) yang menyediakan informasi mengenai seluruh perubahan yang terjadi pada database. • Checkpoint facility Mengizinkan update terhadap database yang akan menjadi database yang permanen • Recovery manager Mengizinkan sistem untuk restore database ke keadaan sebelum terjadi kerusakkan Recovery Techniques Prosedur recovery yang digunakan tergantung dari kerusakkan yang terjadi pada database. Terdapat 2 kasus kerusakkan : 1. Jika database rusak secara fisik seperti : disk head crash dan menghancurkan database, maka yang terpenting adalah melakukan restore backup database yang terakhir dan mengaplikasikan kembali operasi-operasi update transaksi yang telah commit dengan menggunakan log file. Dengan asusmsi bahwa log filenya tidak rusak. 2. Jika database tidak rusak secara fisik tetapi menjadi tidak konsisten, sebagai contoh : sistem crashed sementara transaksi dieksekusi, maka yang perlu dilakukan adalah membatalkan perubahan-perubahan yang menyebabkan database tidak konsisten. Mengulang beberapa transaksi sangat diperlukan juga untuk meyakinkan bahwa perubahan-perubahan yang dilakukan telah disimpan di dalam secondory storage. Disini tidak perlu menggunakan salinan backup database, tetapi dapat me-restore database ke dalam keadaan yang konsisten dengan menggunakan before- dan after-image yang ditangani oleh log file. Teknik recover berikut ini dilakukan terhadap situasi dimana database tidak rusak tetapi database dalam keadaan yang tidak konsisten. 1. Deferred Update Update tidak dituliskan ke database sampai sebuah transaksi dalam keadaan commit. Jika transaksi gagal sebelum mencapai keadaan ini, transaksi ini tidak akan memodifikasi database dan juga tidak ada perubahan-perubahan yang perlu dilakukan. Penulisan dilakukan secara initial hanya terhadap log dan log record yang digunakan untuk actual update terhadap database. Jika sistem gagal, sistem akan menguji log dan menentukan transaksi mana yang perlu dikerjakan ulang, tetapi tidak perlu membatalkan semua transaksi. 2. Immediate Update Update diaplikasikan terhadap database tanpa harus menunggu transaksi dalam keadaan commit. Update dapat dilakukan terhadap database setiap saat setelah log record ditulis. Log dapat digunakan untuk membatalkan dan mengulang kembali transaksi pada saat terjadi kerusakkan. 1 PENDAHULUAN Sistem informasi berbasiskan komputer terdiri dari komponen-komponen berikut ini : • Database • Database software • Aplikasi software • Hardware komputer termasuk media penyimpanan • Personal yang menggunakan dan mengembangkan sistem Database merupakan komponen dasar dari sebuah sistem informasi dan pengembangan serta penggunaannya sebaiknya dipandang dari perspektif kebutuhankebutuhan organisasi yang lebih besar. Oleh karena itu siklus hidup sebuah sistem informasi organisasi berhubungan dengan siklus hidup sistem database yang mendukungnya. Pada tulisan ini akan dibahas mengenai proses perancangan database yang merupakan bagian dari siklus hidup database sebagai micro lifecycle 2 SIKLUS KEHIDUPAN DATABASE SEBAGAI SIKLUS KEHIDUPAN MIKRO Seperti telah disebutkan sebelumnya, sebuah sistem database merupakan komponen dasar sistem informasi organisasi yang lebih besar. Oleh karena itu siklus hidup aplikasi database berhubungan dengan siklus hidup sistem informasi. Langkah-langkah siklus hidup aplikasi adalah berikut ini : Database Design Database Systems Definition Requirements Collection and Analysis Conceptual Logical Design Physical Design Application Design DBMS Selection Prototyping Implementation Data Loading And Convertion Testing Operational Maintenance 3 Hal yang penting adalah mengetahui bahwa langkah-langkah siklus hidup aplikasi database dapat tidak berurutan, tetapi melibatkan beberapa langkah pengulangan yang biasanya disebut sebagai feedback loop. Sebagai contoh : masalah-masalah yang ditemui selama perancangan database mungkin harus mengumpulkan dan menganalisis kebutuhan-kebutuhan tambahan. Seperti yang digambarkan terdapat feedback loop diantara langkah-langkah yang sering terjadi Perancangan Database Pada database yang digunakan oleh single user atau hanya beberapa user saja, perancangan database tidak sulit. Tetapi jika ukuran database yang sedang atau besar (25 - ratusan user yang berisikan jutaan bytes informasi dan melibatkan ratusan query dan program-program aplikasi, contoh : industri-industri, asuransi, hotel, travel, dll yang seluruhnya tergantung pada kesuksesan dari operasi-operasi databasenya), perancangan database menjadi sangat kompleks. Oleh karena itu para pemakai mengharapkan penggunaan database yang sedemikian rupa sehingga sistem harus dapat memenuhi kebutuhan-kebutuhan seluruh user tsb. Tujuan perancangan database : • untuk memenuhi informasi yang berisikan kebutuhan-kebutuhan user secara khusus dan aplikasi-aplikasinya. • memudahkan pengertian struktur informasi • mendukung kebutuhan-kebutuhan pemrosesan dan beberapa obyek penampilan (response time, processing time, dan storage space) Aplikasi database dalam lifecycle Siklus kehidupan sistem informasi sering disebut macro life cycle, dimana siklus kehidupan basis data merupakan micro life cycle. Aktifitas-aktifitas yang berhubungan dengan database sebagai micro life cycle dan termasuk fase-fasenya sbb : 1. Database planning 4 Di aktifitas ini akan disusun bagaimana langkah-langkah siklus hidup dapat direalisasikan secara lebih efisien dan efektif. 2. System definition Definisi ruang lingkup database (misal : para pemakai, aplikasi-aplikasinya, dsb.) 3. Design Pada bagian dari fase ini, perancangan sistem database secara konseptual, logikal dan fisik dilaksanakan 4. Implementation Pemrosesan dari penulisan definisi database secara konseptual, eksternal, dan internal, pembuatan file-file database yang kosong, dan implementasi aplikasiaplikasi software. 5. Loading atau Data Conversion Database ditempatkan baik secara memanggil data secara langsung ataupun merubah file-file yang ada ke dalam format sistem database dan memangggilnya kembali. 6. Application Conversion Beberapa aplikasi software dari suatu sistem sebelumnya dikonversikan ke suatu sistem yang baru. 7. Testing dan Validation Sistem yang baru ditest dan diuji kebenarannya. 8. Operation Operasi-operasi pada sistem database dan aplikasi-aplikasinya. 9. Monitoring dan Maintenance Selama fase operasi, sistem secara konstan memonitor dan memelihara database. Pertambahan dan pengembangan data dan aplikasi-aplikasi software dapat terjadi. Modifikasi dan pengaturan kembali database mungkin diperlukan dari waktu ke waktu. 5 Langkah ke-3 disebut juga perancangan database. Langkah 3,4, dan 5 merupakan bagian dari fase design dan implementation pada siklus kehidupan sistem informasi yang besar. Pada umumnya database pada organisasi menjalani seluruh aktifitasaktifitas siklus kehidupan di atas. Langkah 5 dan 6 tidak berlaku jika database dan aplikasi-aplikasinya baru. Proses Perancangan Database 6 Fase proses perancangan database : 1. Pengumpulan data dan analisis 2. Perancangan database secara konseptual 3. Pemilihan DBMS 4. Perancangan database secara logika (data model mapping) 5. Perancangan database secara fisik 6. Implementasi Sistem database. Gambar fase-fase perancangan database untuk database yang besar : Phase 1 : requirements Data requirements Processing requirements collection and analysis Phase 2 : Conceptual Conceptual & external Transaction design design Schema design (DBMS-independent) (DBMS-independent) Phase 3 : Choice of DBMS Phase 4: Data model Conceptual & external frequencies, Mapping (logical design) schema design performance (DBMS-dependent) constraints Phase 5 : Physical design Internal schema design (DBMS-dependent) Phase 6: Implementation DDL-statements Transaction SDL-statements implementation Keterangan : 6 Secara khusus proses perancangan berisikan 2 aktifitas paralel. Aktifitas yang pertama melibatkan perancangan dari isi data dan struktur database, sedangkan aktifitas kedua mengenai perancangan pemrosesan database dan aplikasi-aplikasi perangkat lunak. Dua aktifitas ini saling menjalin, misalnya : kita dapat mengidentifikasikan data item yang akan disimpan dalam database dengan menganalisa aplikasi-aplikasi database. Dua aktifitas ini juga saling mempengaruhi satu sama lain. Contohnya : fase perancangan database secara fisik, pada saat kita memilih struktur penyimpanan dan jalur-jalur akses dari file-file database yang tergantung pada aplikasi-aplikasi yang akan menggunakan file-file tsb. Di lain pihak, kita biasanya menentukan perancangan aplikasi-aplikasi database dengan mengarah kepada konstruksi skema database yang telah ditentukan selama aktifitas yang pertama. 6 fase di atas tidak harus diproses berurutan. Pada beberapa hal, rancangan tsb dapat dimodifikasi dari yang pertama dan sementara itu mengerjakan fase yang terakhir (feedback loop antara fase) dan feedback loop dalam fase sering terjadi selama proses perancangan. Fase 1 merupakan kumpulan informasi yang berhubungan dengan penggunaan database. Fase 6 merupakan implementasi databasenya. Fase 1 dan 6 kadang-kadang bukan merupakan bagian dari perancangan database, tetapi merupakan bagian dari siklus kehidupan sistem informasi secara umum. Inti dari proses perancangan database adalah fase 2,4,5 Fase 1 : Pengumpulan data dan analisa Proses identifikasi dan analisa kebutuhan-kebutuhan data disebut pengumpulan data dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem database, pertamatama harus mengenal bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem database, termasuk para pemakai yang ada dan para pemakai yang 7 baru serta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para pemakai dan aplikasiaplikasi inilah yang kemudian dikumpulkan dan dianalisa. Aktifitas-aktifitas pengumpulan data dan analisa : 1. Menentukan kelompok pemakai dan bidang-bidang aplikasinya Mennentukan aplikasi utama dan kelompok user yang akan menggunakan database. Individu utama pada tiap-tiap kelompok pemakai dan bidang aplikasi yang telah dipilih merupakan peserta utama pada langkah-langkah berikutnya dari pengumpulan dan spesifikasi data. 2. Peninjauan dokumentasi yang ada Dokumen yang ada yang berhubungan dengan aplikasi-aplikasi dipelajari dan dianalisa. Dokumen-dokumen lainnya (seperti : kebijaksanaan-kebijaksanaan, form, report, dan bagan organisasi) diuji dan ditinjau kembali untuk menguji apakah dokumen-dokumen tsb berpengaruh terhadap kumpulan data dan proses spesifikasi. 3. Analisa lingkungan operasi dan pemrosesan data Informasi yang sekarang dan yang akan datang dipelajari. Termasuk juga analisa jenis-jenis transaksi dan frekuensi-frekuensi transaksinya dan juga arus informasi dalam sistem. Input-output data untuk transaksi-transaksi tsb diperinci. 4. Daftar pertanyaan dan wawancara Tuliskan tanggapan -tanggapan dari pertanyaan-pertanyaan yang telah dikumpulkan dari para pemakai database yang berpotensi. Ketua kelompok (individu utama) dapat diwawancarai sehingga input yang banyak dapat diterima dari mereka dengan memperhatikan informasi yang berharga dan mengadakan prioritas. Fase 2 : Perancangan database secara konseptual Tujuan dari fase ini adalah menghasilkan conceptual schema untuk database yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data model seperti ER/EER model selama fase ini. Dalam conceptual schema, kita harus memerinci aplikasi-aplikasi database yang diketahui dan transaksi-transaksi yang mungkin. 8 Fase perancangan database secara konseptual mempunyai 2 aktifitas paralel : 1. Perancangan skema konseptual : menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari fase 1, dan menghasilkan sebuah conceptual database schema pada DBMSindependent model data tingkat tinggi seperti EER (enhanced entity relationship) model. Skema ini dapat dihasilkan dengan menggabungkan bermacam-macam kebutuhan user dan secara langsung membuat skema database atau dengan merancang skema-skema yang terpisah dari kebutuhan tiap-tiap user dan kemudian menggabungkan skema-skema tsb. Model data yang digunakan pada perancangan skema konseptual adalah DBMS-independent, dan langkah selanjutnya adalah memilih sebuah DBMS untuk melaksanakan rancangan tsb. 2. Perancangan transaksi : menguji aplikasi-aplikasi database dimana kebutuhan-kebutuhannya telah dianalisa pada fase 1, dan menghasilkan perincian transaksi-transaksi ini. Kegunaan fase ini yang diproses secara paralel bersama fase perancangan skema konseptual adalah untuk merancang karakteristik dari transaksi-transaksi database yang telah diketahui pada suatu DBMS-independent. Transaksi-transaksi ini akan digunakan untuk memproses dan memanipulasi database suatu saat dimana database tsb dilaksanakan. Fase 3 : Pemilihan DBMS Pemilihan database di tentukan oleh beberapa faktor, diantaranya : faktor teknik, ekonomi, dan politik organisasi. Contoh faktor teknik : keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational, network, hierarchical, dll), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dll. 9 Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam pemilihan DBMS : 1. Struktur data Jika data yang disimpan dalam database mengikuti struktur hirarki, maka suatu jenis hirarki dari DBMS harus dipikirkan. 2. Personal yang telah terbiasa dengan suatu sistem Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar. 3. Tersedianya layanan penjual Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu memecahkan beberapa masalah sistem. Fase 4 : Perancangan database secara logika (pemetaan model data) Fase selanjutnya dari perancangan database adalah membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Fase ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada fase 2. Pada fase ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada fase 2 ke dalam model data dari DBMS yang dipilih pada fase 3. Pemetaannya dapat diproses dalam 2 tingkat : 1. Pemetaan system-independent : pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data tsb. 2. Penyesuaian skema ke DBMS yang spesifik : mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang dipilih. Hasil dari fase ni memakai perintah-perintah DDL dalam bahasa DBMS yang dipilih yang menentukan tingkat skema konseptual dan eksternal dari sistem database. Tetapi 10 dalam beberapa hal, perintah-perintah DDL memasukkan parameter-parameter rancangan fisik sehingga DDL yang lengkap harus menunggu sampai fase perancangan database secara fisik telah lengkap. Fase ini dapat dimulai setelah pemilihan sebuah implementasi model data sambil menunggu DBMS yang spesifik yang akan dipilih. Contoh: jika memutuskan untuk menggunakan beberapa relational DBMS tetapi belum memutuskan suatu relasi yang utama. Rancangan dari skema eksternal untuk aplikasi-aplikasi yang spesifik seringkali sudah selesai selama proses ini. Fase 5 : Perancangan database secara fisik Perancangan database secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file database untuk mencapai penampilan yang terbaik pada bermacam-macam aplikasi. Selama fase ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur akses. Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS). Beberapa petunjuk dalam pemilihan perancangan database secara fisik : 1. Response time : waktu yang telah berlalu dari suatu transaksi database yang diajukan untuk menjalankan suatu tanggapan. Pengaruh utama pada response time adalah di bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang ditunjuk oleh suatu transaksi. Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan sistem operasi atau penundaan komunikasi. 2. Space utility : jumlah ruang penyimpanan yang digunakan oleh file-file database dan strukturstruktur jalur akses. 11 3. Transaction throughput : rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem database, dan merupakan parameter kritis dari sistem transaksi (misal : digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentual awal dari struktur penyimpanan dan jalur akses untuk file-file database. Fase 6 : Implementasi sistem database Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan sistem database. Perintah-perintah dalam DDL dan SDL(storage definition language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema database dan file-file database (yang kosong). Sekarang database tsb dimuat (disatukan) dengan datanya. Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin mungkin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke database yang baru. Transaksi-transaksi database sekarang harus dilaksanakan oleh para programmmer aplikasi. Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan perintah-perintah dari embedded DML yang telah ditulis dan diuji. Suatu saat transaksitransaksi tsb telah siap dan data telah dimasukkan ke dalam database, maka fase perancangan dan implementasi telah selesai, dan kemudian fase operasional dari sistem database dimulai. 12 PENUTUP Sebuah sistem database merupakan komponen dasar sistem informasi organisasi yang lebih besar. Oleh karena itu siklus hidup aplikasi database berhubungan dengan siklus hidup sistem informasi. Siklus kehidupan sistem informasi merupakan macro lifecycle sementara itu siklus kehidupan database merupakan micro lifecycle. Aktifitas-aktifitas yang berhubungan dengan database sebagai micro life cycle dan termasuk fase-fasenya diantaranya : system definition, design, implementation, loading atau data conversion, application conversion, testing dan validation, operation, monitoring dan maintenance. Proses perancangan database merupakan bagian dari micro lifecycle. Sedangkan kegiatan-kegiatan yang terdapat di dalam proses tersebut diantaranya : pengumpulan data dan analisis, perancangan database secara konseptual, pemilihan DBMS, perancangan database secara logika (data model mapping), perancangan database secara fisik, dan implementasi sistem database. Sistem Basis Data Distributed Database Hal 1 dari 9 BASIS DATA TERDISTRIBUSI Dalam sebuah database terdistribusi, database disimpan pada beberapa komputer. Komputer-komputer dalam sebuah sistem terdistribusi berhubungan satu sama lain melalui bermacam-macam media komunikasi seperti high-speed buses atau telephone line. Sebuah sistem database terdistribusi berisikan sekumpulan site, di mana tiap-tiap site dapat berpartisipasi dalam pengeksekusian transaksi-transaksi yang mengakses data pada satu site atau beberapa site. Tiap-tiap site dapat memproses transaksi lokal yaitu sebuah transaksi yang mengakses data pada satu site di mana transaksi telah ditentukan. Sebuah site juga dapat mengambil bagian dalam mengeksekusi transaksi global yaitu transaksi yang mengakses data pada site yang berbeda di mana transaksi telah ditentukan, atau transaksi yang mengakses data pada beberapa site yang berbeda. Untuk menggambarkan kedua tipe transaksi di atas, dapat dimisalkan : transaksi untuk menambahkan $50 pada nomor rekening 177 yang berada di cabang Valleyview. Jika transaksi telah ditentukan pada cabang Valleyview, maka transaksi ini dianggap transaksi lokal. Jika sebuah transaksi untuk mentransfer $50 dari rekening 177 ke rekening 305 yang berlokasi di cabang Hillside, maka transaksi ini dikatakan transaksi global karena rekening di dua site yang berbeda telah diakses sebagai hasil dari eksekusinya. Site-site dalam database terdistribusi dihubungkan secara fisik dengan berbagai cara. Beberapa topologi digambarkan sebagai sebuah graph yang simpul-simpulnya bersesuaian dengan site. Sebuah edge dari simpul A ke simpul B bersesuaian dengan sebuah hubungan langsung antara dua site. Beberapa konfigurasi (bentuk) digambarkan sebagai berikut: A B C E D F A B C F E D Fully connected network Partially connected network Sistem Basis Data Distributed Database Hal 2 dari 9 A B C D E F A B C D E F A B C D E Tree structured network Ring network Star network Gambar 1. Topologi network Fully Connected network : Keuntungan : kalau salah satu node rusak, yang lainnya masih dapat berjalan (tetapi biaya mahal). Kerugian : control management tidak terjamin Partially connected network : Keuntungan : reliability rendah, biaya dapat ditekan Kerugian : control management tidak terjamin Tree structure network : Keuntungan : bersifat sentral, control management lebih terjamin Kerugian : kalau node pusat (A) rusak, semua akan rusak. Cat : setiap proses dimulai dari bawah. Ring Network (LAN) : Keuntungan : rusak satu, yang lain masih berjalan Kerugian : Control management kurang terjamin karena bersifat desentralisasi Star Network (LAN) : Keuntungan : - control management lebih terjamin, karena bersifat sentral - reliability rendah Kerugian : kalau pusat rusak, yang lainnya rusak Keuntungan dan Kerugian Database Terdistribusi a. Keuntungan-keuntungan dari database terdistribusi 1. Pengawasan distribusi dan pengambilan data Jika sejumlah site yang berbeda dihubungkan satu sama lain, lalu seorang pemakai yang berada pada satu site dapat mengakses data yang tersedia pada site lain. Sebagai contoh : sistem distribusi pada sebuah bank memungkinkan seorang pemakai pada salah satu cabang dapat mengakses data cabang lain. 2. Reliability dan availability Sistem Basis Data Distributed Database Hal 3 dari 9 Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site individu atau mata rantai komunikasi antar site. Misal : jika site-site gagal dalam sebuah sistem distribusi, site-site lainnya dapat melanjutkan operasi jika data telah direplikasi pada beberapa site 3. Kecepatan pemrosesan query Jika sebuah query melibatkan data pada beberapa site, memungkinkan membagi query ke dalam sub query yang dapat dieksekusi dalam bentuk paralel oleh beberapa site. Perhitungan secara paralel mempercepat pemrosesan dari seorang pemakai query 4. Otonomi lokal Pendistribusian sistem mengizinkan sekelompok individu dalam sebuah perusahaan untuk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan. 5. Efisien dan fleksibel Data dalam sistem distribusi dapat disimpan dekat dengan titik di mana data tersebut dipergunakan. Data dapat secara dinamik bergerak atau disalin, atau salinannya dapat dihapus. b. Kerugian-kerugian dari database terdistribusi 1. Harga software yamg mahal Hal ini disebabkan sangat sulit untuk membuat sistem database distribusi 2. Kemungkinan kesalahan lebih besar Site-site yang termasuk dalam sistem distribusi beroperasi secara paralel sehingga menjadi lebih sulit untuk menjamin kebenaran dari algoritma. Adanya kesalahan mungkin tak dapat diketahui 3. Biaya pemrosesan tinggi Perubahan pesan-pesan dan penambahan perhitungan dibutuhkan untuk mencapai koordinasi antar site. Dalam memilih sebuah disain untuk sistem database, perancang harus mengimbangi keuntungan dan kerugian dari database terdistribusi. Fragmentasi Data Fragmentasi : relasi dipartisikan ke dalam beberapa bagian, setiap bagian disimpan pada lokasi yang berbeda. Sistem Basis Data Distributed Database Hal 4 dari 9 Ada beberapa hal yang terlibat dalam penyimpanan relasi pada database terdistribusi di antaranya fragmentasi data. Fragmentasi data memisahkan relasi ke dalam beberapa fragment. Tiap-tiap fragment disimpan pada site yang berbeda. Pemisahan relasi global ke dalam fragment-fragment dapat disusun dengan menggunakan tiga jenis yang berbeda dari fragmentasi yaitu : fragmentasi horizontal, fragmentasi vertikal, dan fragmentasi campuran. Dalam seluruh jenis fragmentasi, sebuah fragment dapat didefinisikan dengan sebuah ekspresi dalam sebuah bahasa relasional (dalam hal ini digunakan aljabar relasional) yang mengambil relasi global sebagai operan dan memproduksi fragment sebagai hasil. Beberapa peraturan yang harus diikuti ketika mendefinisikan fragment : Kondisi lengkap. Seluruh data dari relasi global harus dipetakan ke dalam fragment. Fragmentasi tidak akan terjadi jika sebuah data item yang dimiliki oleh relasi global, tidak dimiliki oleh beberapa fragment. Kondisi penyusunan kembali. Harus selalu mungkin untuk menyusun kembali tiap-tiap relasi global dari fragmentfragmentnya. Hanya fragment-fragment yang disimpan dalam database terdistribusi yang dapat membangun relasi global kembali melalui operasi penyusunan kembali jika diperlukan. Kondisi disjoin. Kondisi ini sangat berguna terutama untuk fragmentasi horizontal, sementara untuk fragmentasi vertikal kondisi ini kadang-kadang dilanggar. Jenis-Jenis Fragmentasi Data 1. Fragmentasi Horizontal. Fragmentasi horizontal berisikan tuple-tuple yang dipartisi dari sebuah relasi global ke dalam sejumlah subset r1, r2, ... , rn. Tiap-tiap subset berisikan sejumlah tuple dari r. Tiap-tiap tuple dari r harus memiliki satu fragment, sehingga relasi yang asli dapat disusun kembali. Sebuah fragment dalam fragmentasi horizontal dapat didefinisikan sebagai sebuah seleksi pada relasi global r. Oleh karena itu sebuah predikat Pi digunakan untuk menyusun fragment ri seperti berikut : ri = σi(r) Penyusunan kembali dari relasi r dapat diperoleh dengan mengambil gabungan dari seluruh fragment : Sistem Basis Data Distributed Database Hal 5 dari 9 n r = U ri i=1 2. Fragmentasi Vertikal Dalam fragmentasi vertikal, tiap-tiap fragment ri didefinisikan sebagai : ri = πi(r) Relasi global dapat disusun kembali dari fragment-fragment dengan mengambil natural join: r = r1 r2 r ..... rn Fragmentasi vertikal disempurnakan dengan menambahkan sebuah atribut yang disebut tuple identifier (tuple-id) ke dalam skema r. Sebuah tuple-id adalah sebuah alamat logik dari sebuah tuple. Tiap-tiap tuple dalam r harus memiliki sebuah alamat yang unik, atribut tuple-id sebagai kunci untuk penambahan skema. Kunci tersebut akan direplikasikan ke dalam seluruh fragment dengan tujuan untuk penyusunan kembali relasi global. Kita dapat melihat bahwa dalam fragmentasi vertikal motivasi utama untuk memiliki fragment-fragment yang disjoin adalah tidak sepenting dalam fragmentasi horizontal. 3. Fragmentasi Campuran Relasi r (global) dibagi-bagi ke dalam sejumlah relasi fragment r1, r2, r3, ..., rn. Tiap-tiap fragment diperoleh sebagai hasil baik dari skema fragmentasi horizontal ataupun skema fragmentasi vertikal pada relasi r, atau dari sebuah fragment r yang diperoleh sebelumnya. Cara yang sederhana untuk membangun fragmentasi campuran sebagai berikut : 1. Menggunakan fragmentasi horizontal pada fragmentasi vertikal. 2. Menggunakan fragmentasi vertikal pada fragmentasi horizontal. Contoh : Relasi Deposit Deposit-Scheme(branch_name, account_number, customer_name, balance) Sistem Basis Data Distributed Database Hal 6 dari 9 Branch-name accountnumber Customername balance Hillside 305 Lowman 500 Hillside 226 Camp 336 Valleyview 177 Camp 205 Valleyview 402 Khan 10000 Hillside 115 Khan 62 Valleyview 408 Khan 1123 Valleyview 639 Green 750 Pemecahan relasi global dengan menggunakan : 1. Fragmentasi Horizontal : Untuk menggambarkan ini, relasi r adalah relasi deposit dari tabel di atas. Relasi ini dapat dibagi ke dalam n fragment yang berbeda, di mana berisikan tuple-tuple dari rekening yang dimiliki oleh sebuah cabang utama. Jika bank hanya memiliki dua cabang, Hillside dan Valleyview maka ada dua fragment yang berbeda. Kemudian fragmentasi horizontal dapat diuraikan sbb : Deposit1 = σ branch-name = "Hillside" (Deposit) Deposit2 = σ branch-name = "Valleyview" (Deposit) Fragment deposit1 disimpan pada site Hiilside dan fragment deposit2 disimpan pada site Valleyview. Dua fragment ini digambarkan sbb: branch-name account-number customer-name balance Hillside 305 Lowman 500 Hillside 226 Camp 336 Hillside 115 Khan 62 (a) deposit1 branch-name account-number customer-name balance Valleyview 177 Camp 205 Valleyview 402 Khan 10000 Valleyview 408 Khan 1123 Valleyview 639 Green 750 (b) deposit2 Fragmentasi di atas memenuhi kondisi lengkap jika "Hillside" dan "Valleyview" adalah harga-harga yang mungkin dari atribut branch-name. Kondisi penyusunan kembali Sistem Basis Data Distributed Database Hal 7 dari 9 sangat mudah untuk diperiksa karena selalu mungkin untuk disusun kembali relasi global deposit melalui operasi berikut : Deposit = deposit1 U deposit2 Begitu juga untuk kondisi disjoin. Kita akan memakai predikat yang digunakan dalam operasi seleksi yang mendefinisikan sebuah fragment kualifikasinya : q1 : branch-name = "Hillside" q2 : branch-name = "Valleyview" 2. Fragmentasi Vertikal : Pada fragmentasi vertikal, relasi deposit memerlukan penambahan tuple-id Berikut ini adalah relasi deposit dengan penambahan tuple-id : branch-name accountnumber customername balance tuple-id Hillside 305 Lowman 500 1 Hillside 226 Camp 336 2 Valleyview 177 Camp 205 3 Valleyview 402 Khan 10000 4 Hillside 115 Khan 62 5 Valleyview 408 Khan 1123 6 Valleyview 639 Green 750 7 Sebuah fragmentasi vertikal dari relasi ini dapat diuraikan sebagai berikut : Deposit3 = π branch-name,customer-name,tuple-id (deposit) Deposit4 = π account-number,balance,tuple-id (deposit) branch-name customer-name tuple-id Hillside Lowman 1 Hillside Camp 2 Valleyview Camp 3 Valleyview Khan 4 Hillside Khan 5 Valleyview Khan 6 Valleyview Green 7 (a) relasi deposit3 Sistem Basis Data Distributed Database Hal 8 dari 9 account-number Balance tuple-id 305 500 1 226 336 2 177 205 3 402 10000 4 115 62 5 408 1123 6 639 750 7 (b) relasi deposit4 Untuk menyusun kembali relasi deposit yang asli dari fragment-fragment, kita dapat menggunakan : π Deposit-scheme(deposit3 deposit4) Atribut join dari ekspresi di atas adalah tuple-id. Karena tuple-id menggambarkan sebuah alamat, hal ini memungkinkan untuk memasangkan sebuah tuple dari deposit3 yang berhubungan dengan tuple dari deposit4 dengan menggunakan alamat yang diberikan oleh harga tuple-id. 3. Fragmentasi Campuran : Misalkan relasi r adalah relasi deposit dari gambar 1 di atas. Relasi ini dibagi ke dalam fragment deposit3 dan deposit4 seperti didefinisikan di atas. Selanjutnya kita dapat membagi fragment deposit3 menjadi fragment deposit3a dan fragment deposit3b dengan menggunakan skema fragmentasi horizontal ke dalam dua fragment berikut : Deposit3a = σ branch-name = "Hillside" (Deposit3) Deposit3b = σ branch-name = "Valleyview" (Deposit3) branch-name customer-name tuple-id Hillside Lowman 1 Hillside Camp 2 Hillside Khan 5 (a)Relasi deposit3a Sistem Basis Data Distributed Database Hal 9 dari 9 branch-name customer-name tuple-id Valleyview Camp 3 Valleyview Khan 4 Valleyview Khan 6 Valleyview Green 7 (b) relasi deposit3b Replikasi : Sistem memelihara beberapa salinan (copy) dari relasi. Setiap salinan disimpan pada beberapa lokasi yang berbeda Replikasi & Fragmentasi Rancangan ini merupakan kombinasi dari replikasi dan fragmentasi. Relasi dipartisikan ke dalam beberapa bagian. Sistem memelihara salinan yang identik untuk setiap bagian. Sistem Basis Data EER Hal 1 dari 4 ENHANCED ENTITY RELATIONSHIP (EER) DIAGRAM Model EER berisikan seluruh konsep model ER ditambah konsep-konsep dari subclass dan superclass, dan konsep-konsep yang berhubungan yaitu specialization dan generalization. Konsep lainnya yang termasuk dalam model EER yaitu Category. Subclass dan Superclass Dalam beberapa hal, suatu jenis entitas akan mempunyai banyak tambahan subgroup entitas yang sangat berarti dan perlu digambarkan secara nyata karena entitas-entitas tsb penting sekali artinya bagi aplikasi database. Contoh : Entitas-entitas yang merupakan anggota dari entitas EMPLOYEE dikelompokkan menjadi secretary, engineer, manager, technician, salaried_employee, hourly_employee, dll. Himpunan entitas pada tiap-tiap group adalah subset entitas dari entitas EMPLOYEE, yang berarti bahwa setiap entitas yang merupakan anggota dari salah satu subgroup-subgroup ini adalah suatu employee juga. Tiap-tiap subgroup tadi adalah suatu subclass dari entity EMPLOYEE, dan entity EMPLOYEE disebut superclass untuk tiap-tiap subclass tsb. Hubungan antara superclass dan beberapa subclass-nya disebut superclass/subclass relationship. Contoh : EMPLOYEE/SECRETARY dan EMPLOYEE/TECHNICIAN adalah dua superclass/subclass relationships. Sebuah entitas tidak dapat berada dalam database dengan menjadi anggota suatu subclass saja, tetapi entitas tsb juga harus merupakan anggota dari superclass. Specialization Specialization adalah proses pendefinisian suatu himpunan subclass dari suatu entitas; entitas ini disebut superclass dari specialization. Himpunan subclass tsb membentuk specialization yang telah didefinisikan berdasarkan beberapa sifat/karakteristik yang istimewa dari suatu entitas pada suatu superclass yang menggambarkan perbedaan yang jelas antara entitas tsb. Contoh : himpunan subclass {SECRETARY, ENGINEER, TECHNICIAN} adalah specialization dari superclass entitas EMPLOYEE dimana perbedaan antara entitas EMPLOYEE berdasarkan pada jenis pekerjaan dari tiap-tiap entitas. Kita dapat mempunyai beberapa specialization dari jenis entitas yang sama berdasarkan perbedaan karakteristik yang istimewa. Sistem Basis Data EER Hal 2 dari 4 Contoh : specialization dari entitas EMPLOYEE dapat menghasilkan himpunan subclass {SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}, pada specialization ini perbedaan entitas EMPLOYEE berdasarkan metode pembayarannya. Generalization Generalization adalah proses pendefinisian entitas-entitas yang disatukan menjadi entitas superclass tunggal dari entitas aslinya yang merupakan subclass istimewa. Proses generalization dapat dipandang sebagai kebalikan dari proses specialization. Contoh : Gambar 1. kita dapat memandang {CAR, TRUCK} sebagai specialization dari VEHICLE, sebaliknya kita memandang VEHICLE sebagai suatu generalization dari CAR dan TRUCK. Dengan cara yang sama, kita dapat memandang EMPLOYEE sebagai generalization dari SECRETARY, TECHNICIAN, dan ENGINEER. No of passangers Max speed Vehicleid Price License Plate No CAR Price No Of Axles Tonnage TRUCK Vehicleid License Plate No VEHICLE Price Vehicleid License Plate No d CAR TRUCK No Of Axles Tonnage No of passangers Max speed Gambar 1. Generalize Superclass VEHICLE Sistem Basis Data EER Hal 3 dari 4 Categorization Category adalah kebutuhan yang timbul untuk model suatu relationship superclass/subclass tunggal dengan lebih dari satu superclass dimana superclassuperclass tsb menggambarkan jenis entity yang berbeda. Contoh : Gambar 2. Terdapat 3 jenis entitas yaitu : PERSON, BANK, dan COMPANY. Dalam suatu database REGISTERED_VEHICLE, pemilik kendaraan (OWNER) bisa saja perorangan, bank, atau perusahaan. Kita perlu membuat suatu class yang terdiri dari 3 jenis entitas untuk memainkan perannya sebagai pemilik kendaraan. Maka dibuat suatu category OWNER yaitu sebuah subclass dari gabungan (UNION) 3 class yaitu COMPANY, BANK, dan PERSON untuk kepentingan ini. BName BAddress BANK SSN SName Address Driver License No PERSON COMPANY CName CAddress U OWNER OWNS Lien or Regular Purchase Date License Plate No REGISTERED_VEHICLE U Cmodel Cmake Cstyle CAR Vehicleid TMake TYear TYear TModel Tonnage TRUCK Vehicleid Gambar 2. Category REGISTERED_VEHICLE Sistem Basis Data EER Hal 4 dari 4 Pada gambar di atas, terdapat 2 category yaitu OWNER yang merupakan sebuah subclass dari gabungan PERSON, BANK, dan COMPANY, yang lainnya yaitu REGISTERED_VEHICLE yang merupakan subclass dari gabungan CAR dan TRUCK. Sebuah category dapat mempunyai 2 atau lebih superclass yang menggambarkan jenisjenis entitas yang berbeda, sebaliknya relationship superclass/subclass lainnya selalu memiliki superclass tunggal. Suatu category adalah subset dari gabungan superclass-nya. Oleh sebab itu suatu entitas yang merupakan anggota OWNER harus berisikan sedikitnya 1 superclass, tetapi tidak harus menjadi anggota dari seluruh superclass. Hal ini menggambarkan batasan bahwa seorang OWNER mungkin saja suatu COMPANY, sebuah BANK, atau perorangan (PERSON). Perbedaan antara dua gambar di atas (generalize superclass VEHICLE dengan category REGISTERED_VEHICLE) : Pada generalize superclass VEHICLE : - Setiap mobil dan truk adalah vehicle - Jika dipisahkan, tidak dapat dihindari bahwa akan terdapat jenis entitas lain seperti entitas BICYCLE Pada category REGISTERES_VEHICLE - Terdiri dari beberapa mobil dan beberapa truk, tetapi tidak seluruh mobil dan truk yang diregistrasikan - Category registered_vehicle menyatakan hanya mobil dan truk saja, dan bukan jenis entitas lain yang dapat menjadi anggota REGISTERED_VEHICLE Sistem Basis Data OOD Hal 1 dari 8 OBJECT ORIENTED DATABASE Advanced Database Applications Computer-Aided Design (CAD) Database CAD menyimpan data yang berhubungan dengan rancangan mekanik dan elektrik, sebagai contoh : gedung, pesawat, dan chips IC. Computer-Aided Manufacturing (CAM) Database CAM menyimpan data yang jenisnya sama dengan sistem CAD, ditambah data yang berhubungan dengan produksi yang mempunyai ciri-ciri tersendiri (seperti mobil pada saat perakitan) dan produksi yang kontinyu (seperti sintesa kimia) Computer-Aided Software Engineering (CASE) Database CASE menyimpan data yang berhubungan dengan langkah-langkah dari siklus pengembangan software yaitu : planning, requirements collection analysis, design, implementation, test, maintenance and documentation. Office Automation (OA) Database OA menyimpan data yang berhubungan dengan pengontrolan informasi komputer dalam bidang bisnis, termasuk e-mail, dokumen-dokumen, invoice, dsb. Agar menyediakan dukungan yang lebih baik untuk area ini, dibutuhkan penanganan yang lebih luas terhadap jenis data daripada nama, alamat, tanggal dan uang. Sekarang ini sistem yang modern dapat menangani text yang berjenis bebas, foto, diagram, audio dan video. Sebagai contoh : dokumen multimedia yang mengangani teks, foto, spreadsheets dan suara. Computer-Aided Publishing (CAP) Database CAP menyimpan dokumen yang kompleks. Sama seperti otomatisasi kantor, applikasi CAP telah diperluas untuk menangani dokumen-dokumen multimedia yang berisikan teks, audio, gambar, video data, dan animasi. Keterbatasan Relational DBMS Representation of “Real World” entities Proses normalisasi pada umumnya akan membuat relasi yang tidak berhubungan dengan entitas pada “dunia nyata”. Fragmentasi dari entitas “dunia nyata” ke dalam beberapa relasi, dengan sebuah representasi fisik akan menggambarkan struktur yang tidak efisien karena akan melakukan banyak join selama proses query. Semantic overloading Model relasional hanya mempunyai satu konstruksi untuk menggambarkan data dan keterhubungannya. Sebagai contoh : untuk menggambarkan keterhubungan M : N dari entitas A dan B, kita membuat 3 relasi, satu untuk menggambarkan masing-masing entitas A dan B, dan satu menggambarkan keterhubungannya (relationship). Tidak ada Sistem Basis Data OOD Hal 2 dari 8 mekanisme untuk membedakan antara entitas dan relationship, atau untuk membedakan antara jenis relationship yang berbeda yang terdapat di antara entitas. Sebagai contoh : relationship 1 : M dapat berarti memiliki, mempunyai, mengatur, dsb. Jika perbedaan seperti itu dapat dibuat, maka mungkin dapat membangun semantik pada operasi-operasi tersebut. Oleh karena itu model relasional merupakan semantically oevrloaded. Integrity constraints and enterprise constraints Integrity berhubungan dengan validitas dan kekonsistenan dari data yang disimpan. Integrity biasanya diekspresikan dalam istilah-istilah yang berhubungan dengan constraint, dimana aturan-aturan kekonsistenan pada database tidak boleh dilanggar. Sangat disayangkan bahwa banyak sistem komersial tidak mendukung batasan-batasan itu, dan sistem tersebut lebih mengutamakan membuat batasan-batasannya di dalam aplikasi. Tentu saja hal ini sangat berbahaya dan dapat menimbulkan duplikasi data, dan lebih buruk lagi data berada dalam keadaan tidak konsisten. Lebih jauh lagi, tidak ada dukungan untuk aturan-aturan enterprise dalam model relasional, yang artinya aturan-aturan tersebut harus dibangun ke dalam DBMS atau aplikasi. Homogeneous data Model relasional mengasumsikan homogenitas horisontal dan vertikal. Homogenitas horisontal berarti bahwa setiap tuple dari sebuah relasi harus disusun dari atribut-atribut yang sejenis. Homogenitas vertikal berarti bahwa nilai di dalam kolom dari sebuah relasi harus berasal dari domain yang sama (sejenis). Dan irisan (intersection) antara baris dan kolom harus bernilai atomik. Struktur yang tetap seperti ini sangat terbatas untuk beberapa objek “dunia nyata” yang mempunyai struktur kompleks. Sebagai contoh : pesawat terbang. Limited operations Model relasional merupakan himpunan (set) yang sudah tetap, seperti operasi himpunan (set) dan operasi tuple-oriented. Operasi-operasi ini disediakan oleh SQL. Recursive Query Recursive query merupakan proses query dari relationship yang berelasi dengan dirinya sendiri (baik secara langsung atau tidak langsung). Sebagai contoh : terdapat relasi sederhana dari relasi Staff yang menyimpan nomor staf dan manajer-nya. Staff_No Manager_Staff_No S5 S4 S4 S3 S3 S2 S2 S1 S1 Null Bagaimana mencari para manajer yang secara langsung atau tidak langsung mengatur (manage) anggota staf no S5 ? Sistem Basis Data OOD Hal 3 dari 8 Terdapat 2 tingkat hirarki : SELECT manager_staff_no FROM staff WHERE staff_no = ‘S5’ UNION SELECT manager_staff_no FROM staff WHERE staff_no = (SELECT manager_staff_no FROM staff WHERE staff_no = ‘S5’); Di dalam contoh ini, pendekatan ini berhasil karena kita mengetahui berapa tingkatan dalam hirarki yang harus diproses. Tetapi jika untuk mendapatkan hasil yang lain seperti “untuk setiap anggota staff, tampilkan seluruh manajer baik yang secara langsung ataupun tidak langsung mengatur (manage) staf tersebut”, maka pendekatan seperti di atas akan lebih sulit untuk diimplementasikan dengan menggunakan SQL. Untuk mengatasi masalah ini, SQL dapat ditempelkan (embedded) pada bahasa pemrograman tingkat tinggi, yang menyediakan konstruksi untuk fasilitas iterasi. Sebagai tambahan, banyak sistem relasional yang menyediakan report writer dengan konstruksi yang mirip. Impedance mismatch Perhitungan dengan menggunakan SQL kurang lengkap. Untuk mengatasi hal ini, SQL standar menyediakan embedded SQL untuk membangun aplikasi database yang lebih kompleks. Tetapi pendekatan ini menghasilkan sebuah “Impedance mismatch” karena kita mencocokan paradigma pemrograman yang berbeda. SQL merupakan sebuah bahasa yang menangani baris (record), sedangkan sebuah bahasa tingkat tinggi seperti C merupakan bahasa prosedural yang dapat menangani hanya 1 baris pada suatu saat. Kedua : SQL dan 3 GLs menggunakan model-model yang berbeda untuk menggambarkan data. Sebagai contoh : SQL bisa berisikan jenis data date dan interval yang tidak tersedia di dalam bahasa pemrograman tradisional. Oleh karena itu merupakan hal yang sangat penting bagi program aplikasi untuk mengkonversi dua tipe data tadi, sehingga menjadi tidak efisien. Lebih jauh lagi, karena kita menggunakan 2 tipe sistem yang berbeda, maka sangat tidak mungkin secara otomatis menguji aplikasi secara keseluruhan. Object Oriented Concepts Abstaraction and Encapsulation Abstraction : proses identifikasi aspek-aspek yang perlu (essential) dari entitas dan mengabaikan property yang tidak penting. Encapsulation (information hiding) : memisahkan aspek-aspek eksternal sebuah objek dari rincian internalnya (internal details), yang tidak terlihat dari dunia luar. Dengan cara ini, internal detail sebuah objek dapat dirubah tanpa mempengaruhi aplikasi yang menggunakan objek tersebut, begitu juga dengan external detail. Dengan kata lain, encapsulation menyediakan data independence. Sistem Basis Data OOD Hal 4 dari 8 Objects and Attributes Object : Sebuah entitas yang dapat diidentifikasikan secara unik, berisikan atribut-atribut yang menerangkan keadaan atau kondisi (state) objek dunia nyata (real world object) dan aksi-aksi yang berhubungan dengan sebuah objek dunia nyata. Definisi objek serupa dengan definisi entitas. Perbedaannya : objek menunjukkan keadaan (state) dan tingkah laku (behaviour), sedangkan entitas menunjukkan models state. Current state dari sebuah objek digambarkan dengan satu atau lebih attribute (instance variables). Sebagai contoh : kantor cabang di 163 Main Street dapat memiliki atribut yang terlihat pada tabel berikut : Tabel 1. Object attributes for branch instance BNO B3 STREET 163 Main St AREA Partick CITY Glasgow POST_CODE G11 9QX TEL_NO 0141-339-2178 FAX_NO 0141-339-4439 SALES_STAFF Ann Beech; David Ford MANAGER Susan Brand Atribut dapat dikelompokkan menjadi atribut simpel dan atribut kompleks. Atribut simpel dapat berupa tipe primitif seperti integer, string, real, dsb. yang mengambil nilai literal. Sebagai contoh : Bno pada tabel 1 merupakan atribut simpel dengan nilai litaral ‘B3’. Sedangkan atribut kompleks dapat berisikan kumpulan (koleksi) dan / atau referensi. Sebagai contoh : atribut Sales_staff merupakan kumpulan dari objek staff. Atribut referensi (reference attribute) menggambarkan keterhubungan antar objek. Atribut referensi berisikan sebuah nilai atau kumpulan nilai yang merupakan objeknya sendiri. Sebagai contoh : Sales_staff lebih tepatnya merupakan kumpulan referensi yang menunjuk kepada objek staf. Atribut referensi secara konseptual dama seperti foreign key di dalam model data relasional atau seperti sebuah pointer dalam bahasa pemrograman. Atribut secara umum biasanya menggunakan notasi ‘dot’. Sebagai contoh : atribut street dari objek branch : branch_object.street Object Identity Pada saat objek dibuat, object identifier (OID) langsung ditentukan. OID tersebut unik dan berbeda. OID membedakan objek yang satu dengan objek lainnya di dalam sistem. Sekali objek dibuat, OID tersebut tidak dapat digunakan kembali untuk objek-objek lainnya, walaupun objek tersebut telah dihapus. Sistem Basis Data OOD Hal 5 dari 8 Methods and Message Methods Dalam teknologi objek, function biasanya disebut methods. Contoh : gambar 1, memberikan suatu gambaran konseptual sebuah objek dengan atribut didalamnya, dan methods di bagian luar. Methods mendefinisikan tingkah laku dari sebuah objek. Methods dapat digunakan untuk merubah kondisi objek dengan memodifikasi nilai atribut-atributnya, atau meng-query nilai atribut yang diseleksi. Sebagai contoh kita dapat menggunakan methods untuk menambah property baru untuk disewa pada sebuah cabang, merubah gaji pegawai atau mencetak detail pegawai. Gambar 1. Object showing attributes & methods Sebuah method berisikan nama dan body yang membentuk tingkah laku yang berhubungan dengan nama method. Pada bahasa berorientasi objek, body berisikan kode blok yang melaksanakan aksi. Sebagai contoh berikut ini menggambarkan method untuk merubah gaji pegawai. Nama method-nya adalah update_salary, mempunyai parameter inputnya increment yang menambahkan instance variable salary untuk menghasilkan gaji baru Method void update_salary(float increment) { salary = salary + increment } Message Message mempunyai arti komunikasi antara objek. Sebuah message merupakan permintaan sederhana dari suatu objek (pengirim) ke objek lain (penerima) dan menanyakan objek tsb untuk mengeksekusi salah satu method-nya. Pengirim dan penerima bisa pada objek yang sama. Notasi ‘dot’ biasanya digunakan untuk mengakses sebuah method. Contoh : untuk mengeksekusi method update_salary dari objek staff dan masukkan method dengan pertambahan nilai 1000. staff_object.update_salary(1000) Method 1 Method 2 Method 4 Method 3 Attrbutes Sistem Basis Data OOD Hal 6 dari 8 Pada bahasa pemrograman tradisional, sebuah message ditulis seperti function call : update_salary(staff_object, 1000) Class Class merupakan pendefinisian himpunan objek yang sejenis. Objek yang mempunyai atribut yang sama dan meresponse message yang sama dapat dikelompokkan bersama membentuk sebuah class. Atribut dan method yang berhubungan cukup sekali saja didefinisikan untuk class, daripada didefinisikan terpisah untuk setiap objek. Contoh : seluruh objek cabang dideskripsikan oleh sebuah class cabang (branch). Objek-objek pada sebuah class disebut instance dari class. Setiap instance mempunyai nilainya sendiri untuk setiap atribut, tetapi nama atribut dan method-nya sama seperti instance lainnya dari sebuah class. Contoh : gambar 2. CLASS DEFINITION CLASS INSTANCES Gambar 2. Class instances share attributes and methods Bno=B5 Street = 22 Deer St City = Sidcup Area = London …………….. Bno=B7 Street = 16 Argyll St City = Dyce Area = Aberdeen ……………… Bno=B3 Street = 163 Main St City = Partick Area = Glasgow BRANCH Attributes Bno Street City Area ……… Methods Print Update_tel_no Number_of_staff …….. Sistem Basis Data OOD Hal 7 dari 8 Subclass, Superclass, and Inheritance Inheritance mengizinkan satu class objek didefinisikan sebagai kasus spesial (special case) dari sebuah class pada umumnya. Special case ini dikenal dengan subclass, dan kasus umum lainnya dikenal sebagai superclass. Proses pembentukan superclass sama seperti generalization, sedangkan subclass seperti specialization. Konsep dari superclass, subclass, dan inheritance sama seperti EER, kecuali dalam paradigma object-oriented, inheritance meliputi state dan behaviour. Relationship antara subclass dan superclass kadang-kadang dituliskan seperti A KIND OF (AKO), sebagai contoh : a Manager is AKO staff. Relationship antara sebuah instance dan class-nya dituliskan ISA ; contoh : Susan Brand IS-A Manager. Ada beberapa bentuk inheritance : 1. Single inheritance Subclass merupakan turunan dari satu superclass. Contoh : subclass Manager dan Sales_Staff merupakan turunan property dari superclass Staff. Gambar 3. Single inheritance 2. Multiple inheritance Subclass Sales_Manager merupakan turunan dari superclass Manager dan Sales_Staff. Gambar 4. Multiple inheritance Person Staff Manager Sales_staff Manager Sales_staff Sales_Manager Sistem Basis Data OOD Hal 8 dari 8 3. Repeated inheritance Kasus spesial dari multiple inheritance, dimana sebuah superclass merupakan turunan dari sebuah superclass biasa. Melanjutkan contoh multiple inheritance, class Manager dan Sales_staff bisa saja merupakan turunan dari superclass biasa yaitu superclass Staff. Dalam kasus ini, mekanisme inheritance harus meyakinkan bahwa class Sales_manager tidak diturunkan sebanyak dua kali dari superclass Staff. Gambar 5. Repeated inheritance 4. Selective inheritance Mengizinkan subclass menurunkan sejumlah property dari superclass. Keistimewaan ini secara fungsional sama seperti mekanisme view, dengan membatasi akses ke beberapa detail tapi tidak seluruhnya. Manager Sales_staff Sales_Manager Staff Sistem Basis Data Perkembangan Database Saat Ini Hal 1 dari 5 PERKEMBANGAN BASIS DATA SAAT INI Sejak tahun 1960-an penggunaan basis data sudah digunakan untuk bidang komersial, dimana pemrosesan file-nya masih berbasis manajemen file tradisional. Perkembangan komputer yang semakin pesat diikuti dengan perkembangan perangkat lunak untuk aplikasi bisnis, sejak tahun 1970-an sampai awal tahun 1980 manajemen berbasis file tradisional berkembang menjadi manajemen basis data. Di dalam manajemen basis data dikenal berbagai model data yang dapat digunakan untuk mendeskripsikan sebuah data dalam merancang suatu basis data. Manajemen ini memungkinkan banyak user untuk mengakses data secara bersamaan sehingga fasilitas yang dimiliki oleh manajemen sudah semakin banyak yaitu fasilitas pemanipulasian data, kontrol konkurensi data, recovery data, keamanan data dan didukung dengan fasilitas komunikasi data karena manajemen ini sudah terhubung dengan suatu jaringan . Perkembangan dunia usaha semakin meningkat ditunjang dengan perkembangan komunikasi yang mempermudah organisasi atau perusahaan untuk mengakses data, sehingga mengubah manajemen basis data menjadi manajemen basis data tingkat lanjut didukung dengan fasilitas data warehousing dan fasilitas basis data berbasis web sebagai salah satu strategi organisasi dalam meningkatkan kinerja dan keuntungan organisasi. Data Collection and Database Creation (1960s and earlier) Database Management Systems (1970s – early 1980s) - Hierarchical and Network Database Systems - Relational Database Systems - Data modeling tools : entity relationship model, etc - Indexing and data organization techniques : b+ tree, hashing, etc - Query language : SQL, etc - User interface, forms, and reports - Query processing and query optimizaztion Advance Database Systems (mid-1980s-present) - Advance data models : extended relational, object oriented, object relational, deductive - Application oriented : spatial, temporal, multimedia, active, scientific, knowledge bases Web-Based Database Systems (1990s – present) - XML-based database systems - Web mining Data Warehouse and Data Mining (late 1980s – present) - Data warehouse and OLAP technology - Data mining and knowledge discovery New Generation of Integrated Information Systems (2000 - …) Gambar 1. Evolution of Database Technologi Sistem Basis Data Perkembangan Database Saat Ini Hal 2 dari 5 A. ORDBMS A.1. ORDBMS (Object Relational Database Management System) Penggunaan teknologi RDBMS pada awalnya sangat dominan, tetapi dikarenakan fasilitas–fasilitas yang ada pada RDBMS tidak lagi sesuai dengan aplikasi tingkat lanjut, maka RDBMS digantikan dengan OODBMS. Pada OODBMS terdapat banyak sekali bentuk-bentuk object oriented seperti metode encapsulation, inheritance, polymorphism, dll. Model data relasional lanjutan tidak hanya ada satu , tetapi terdapat berbagai macam model data, dimana karakteristik dan tingkat kebutuhan data yang telah dibuat. Bagaimanapun semua model data yang akan digunakan mengacu pada konsep objek dan mempunyai kemampuan untuk menyimpan data di dalam database. Berbagai macam terminologi yang digunakan untuk sistem model relasional tingkat lanjut yaitu ERDBMS. Tapi sekarang ini untuk sistem berbasis objek dapat digunakan OODBMS. Inti dari kinerja RDBMS yaitu ada pada optimasi queri-nya dan juga pengetahuan mengenai bagaimana mengeksekusi fungsi dari user-define secara efisien, mengambil keuntungan dari pengindeksan pada struktur yang baru, memetakan queri dengan cara baru, dan menavigasi antara data menggunakan referensi data. Penggunaan OODBMS untuk suatu organisasi yang sangat besar dan universal tidak lagi sesuai sehingga untuk mendukung kinerja dari organisasi tersebut dibutuhkan suatu ORDBMS (Objeck Relational Database Management System). ORDBMS memiliki fasilitas untuk mendefinisikan data yang kompleks, menspesialisasikan struktur indeks dibutuhkan untuk mengefisienkan pengambilan data. ORDBMS digunakan untuk dua sampai tiga dimensional data. Sistem Basis Data Perkembangan Database Saat Ini Hal 3 dari 5 A.2. Perbandingan antara OODBMS dan ORDBMS Pemodelan Data Model OODBMS ORDBMS Identitas Objek ada Ada dengan tipe REF (Refferences) Pengkapsulan Ada, tapi tidak dapat digunakan untuk queri Ada dengan UDT (User Defined Types) Penurunan Ada Ada (dipisahkan antara UDT dan Table) Polymorphism Ada, sebagai object oriented pada model bahasa pemrograman Ada Objek kompleks Ada Ada, dengan UDT Relasi Ada Sangat mendukung untuk mendefinisikan batasan referensial integritas B. Data Warehousing B.1. Konsep Data Warehousing Konsep dasar dari data warehousing adalah informasi yang dikumpulkan dalam suatu gudang penyimpanan dan merepresentasikan solusi untuk pengaksesan data didalam sistem non relasional. Sehingga data warehousing dapat disebut sebagai database yang berorientasi pada subyek, terintegrasi, mempunyai Time Variant dan bersifat non volatile untuk kumpulan data yang mendukung dalam pengambilan keputusan. • Berorientasi subyek artinya mengatur semua subyek utama pada suatu organsisasi yang memfokuskan pada basis datanya bukan pada aplikasi yang digunakan untuk pengambilan keputusan. • Terintegrasi artinya pemakaian data bersama-sama sering menyebabkan data tidak konsisten sehingga cara pandang user terhadap data menjadi tidak sama. Agar terintegrasi pembentukan sumber data harus standar dan konsisten. • Time Variant, data yang ada pada gudang hanya valid dan akurat pada titik waktu tertentu atau interval tertentu. • Non-volatile, data tidak di-update secara real time tetapi selalu diperbaharui dari sistem operasi pada database yang ada. B.2. Keuntungan dari Data Warehousing 1. Hasil yang diperoleh dari investasi lebih tinggi 2. Kompetitif 3. Meningkatkan produktivitas perusahaan Sistem Basis Data Perkembangan Database Saat Ini Hal 4 dari 5 Jenis database yang tersimpan di dalam media penyimpanan data berdasarkan penggunaan data : • Database yang memiliki data sering di-update disebut data OLTP (Online Transaction Processing). Data OLTP sering juga disebut data operasional, mencerminkan sifat aplikasi database yang dinamik. • Database yang memiliki data sering digunakan untuk query disebut DSS (Decision Support System). Data DSS sering disebut data analitikal, mencerminkan sifat aplikasi database yang relatif statik. Data Operasional Data DSS Berorientasi pada aplikasi : data digunakan untuk proses bisnis. Sebagai contoh : sistem perbankan dengan file terpisah yang sudah dalam bentuk normal untuk setiap proses bisnis. Berorientasi pada subyek : data digunakan untuk subyek bisnis, misal informasi nasabah. Data dalam bentuk denormalisasi dimana sebuah record dapat meliputi keseluruhan proses bisnis. Data terperinci Data ringkas Struktur statik Struktur dinamik Target operator komputer Target pengambil keputusan pada seluruh tingkatan Volatile (data dapat diubah) Non volatile (data tidak bisa diubah setelah dimasukkan) Kebutuhan data selalu diketahui sebelum rancangan sistem Kebutuhan data sama sekali tidak diketahui sebelum rancangan sistem Mengikuti siklus hidup pengembangan klasik dimana iterasi rancangan diselesaikan melalui normalisasi data, dan memeriksa kebutuhan pemakai Siklus hidup pengembangan sama sekali berbeda, dimana pemakai menggunakan aplikasi struktur data yang ada dan membuat rancangan siap untuk dianalisis Performansi penting karena jumlah pemakai konkuren sangat besar dalam mengakses data Masalah performansi lebih longgar Karena jumlah pemakai jauh lebih sedikit dalam mengakses data sehingga tidak ada masalah konkuren yang perlu diperhatikan. Penggerak-transaksi (Transaction-driven) Penggerak-analisis (Analysis-driven) Data harus selalu tersedia untuk pemakai akhir (back up dan recovery harus terencana dengan baik) Tidak mempunyai tingkat kebutuhan ketersediaan data yang sama (perencanaan back up dan recovery lebih longgar) Mencerminkan situasi mutakhir Mencerminkan nilai historis C. Data Mart Untuk mencapai suatu data warehouse kelihatannya merupakan suatu tantangan besar dan memang demikian. Bahkan begitu besarnya sehingga beberapa pakar menyarankan pendekatan yang lebih sederhana yaitu menerapkan sesuatu yang dinamakan data mart. Data mart adalah database yang berisikan data yang menjelaskan satu segmen operasi perusahaan. Misalnya perusahaan mungkin memiliki data mart pemasaran, data mart smber daya manusia, dsb. Sistem Basis Data Perkembangan Database Saat Ini Hal 5 dari 5 D. Data Mining Istilah yang sering digunakan bersama-sama dengan data warehouse dan data mart adalah data mining. Data mining adalah proses menemukan hubungan dalam data yang tidak diketahui oleh pemakai. Data mining membantu pemakai dengan mengungkapkan berbagai hubungan dan menyajikannya dengan suatu cara yang dapat dimengerti sehingga dapat menjadi dasar pengambilan keputusan. Data mining memungkinkan pemakai “menemukan pengetahuan” pada database yang dalam sepengetahuannya tidak ada. Contoh Data Mining : Sebuah bank telah memutuskan untuk menawarkan reksadana kepada para pelanggannya. Manajemen bank ingin mengarahkan materi promosi pada segmen pelanggan yang memberikan potensi bisnis terbesar. • Data Mining Berdasarkan Verifikasi. Pendekatan yang dilakukan oleh para manajer adalah mengidentifikasi karakteristik yang mereka yakin dimiliki oleh pasar sasaran. Misalkan para manajer ingin mengarah pada pasangan muda, berpenghasilan ganda, dan kaya. Query dapat dimasukkan ke dalam DBMS, dan catatan yang tepat dapat dipanggil. Pendekatan yang seperti itu, yang mulai dengan hipotesis pemakai tentang bagaimana data tersebut terstruktur, disebut data mining berdasarkan verifikasi (verification-driven data mining). Kekurangan pendekatan ini adalah proses pemanggilan kembali diarahkan sepenuhnya oleh pemakai. Informasi yang dipilih tidak lebih baik daripada pandangan pemakai terhadap data tersebut. Ini merupakan cara tradisional untuk bertanya pada database. • Data Mining Berdasarka Penemuan. Pendekatan lain memungkinkan sistem data mining mengidentifikasi pelanggan terbaik untuk promosi tersebut. Sistem itu menganalisis database, mencari kelompok-kelompok dengan karakteristik umum. Dalam contoh bank, sistem data mining mungkin mengidentifikasi bukan hanya kelompok pasangan muda lulusan universitas tetapi juga pasangan yang sudah pensiun yang bergantung pada jaminan sosial dan pensiun. Sistem data mining dapat melaksanakan analisis selangkah lebih jauh, dengan merekomendasikan satu set promosi yang diarahkan pada kedua kelompok tersebut. • Kombinasi Data Mining Verifikasi dan Penemuan. Perkembangan data mining di masa depan akan mengkombinasikan pendekatan hipotesis dan penemuan. Perkembangan ini menggunakan penalaran yang sama yang mendasari konsep Sistem Pendukung Keputusan (Decision Support System – DSS). Konsep tersebut memungkinkan pemakai dan komputer bekerja sama untuk memecahkan suatu masalah. Pemakai menerapkan keahliannya dalam hal masalah, dan komputer melakukan analisis data yang canggih untuk memilih data yang tepat dan menempatkannya dalam format yang tepat untuk pengambilan keputusan. Pengantar Basis Data Pertemuan 1 : PENGANTAR BASIS DATA Tujuan Instruksional Khusus : • Mahasiswa dapat menjelaskan perbedaan antara file tradisional dan file manajemen basis data • Mahasiswa dapat menjelaskan konsep basis data dan istilah yang termasuk di dalamnya • Mahasiswa dapat mejelaskan keuntungan dan kerugian apabila menggunakan file manajemen basis data • Mahasiswa dapat menyebutkan para pengguna basis data Deskripsi Singkat : Pada materi ini akan dibahas mengenai perbedaan antara file tradisional yang sudah banyak ditinggalkan orang dan file manajemen basis data atau sering disebut sebagai basis data (database), dengan disertai contoh penggunaan dua jenis file tersebut. Pada materi ini juga akan dapat menjawab mengapa basis data telah banyak digunakan orang. Selain itu juga akan dibahas mengenai pengertian basis data termasuk konsep dari basis data, istilah-istilah yang biasanya digunakan dalam basis data, serta pengguna basis data Bahan Bacaan : 1. Connoly, Thomas; Begg, Carolyn; Strachan, Anne; Database Systems : A Practical Approach to Design, Implementation and Management, 3rd edition, Addison Wesley, 2001. 2. Korth, H.; Database System Concept, 4th edition, Mc Graw Hill, New York, 1991. Pengantar Basis Data 1 Pengantar Basis Data PENGANTAR BASIS DATA Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang digunakan oleh pemakai untuk mendukung pengambilan keputusan. Hal inilah yang menjadikan alasan dari penggunaan teknologi basis data pada saat sekarang (dunia bisnis). Berikut ini contoh penggunaan Aplikasi basis data dalam dunia bisnis : • Bank : Pengelolaan data nasabah, akunting, semua transaksi perbankan • Bandara : Pengelolaan data reservasi, penjadualan • Universitas : Pengelolaan pendaftaran, alumni • Penjualan : Pengelolaan data customer, produk, penjualan • Pabrik : Pengelolaan data produksi, persediaan barang, pemesanan, agen • Kepegawaian: Pengelolaan data karyawan, gaji, pajak • Telekomunikasi : Pengelolaan data tagihan, jumlah pulsa Sistem Pemrosesan File file mata kuliah file mahasiswa mahasiswa Program Aplikasi Mahasiswa mata kuliah Program Aplikasi Mata Kuliah Gambar 1. Sistem pemrosesan file untuk suatu Universitas Keterangan : File mahasiswa : Mhs (npm, nama, alamat, tgl_lahir) MataKul (kd_mk, nama_mk, sks) File MataKuliah : MataKul (kd_mk, nama, sks) Sebelumnya, sistem yang digunakan untuk mengatasi semua permasalahan bisnis, menggunakan pengelolaan data secara tradisional dengan cara menyimpan record-record pada file-file yang terpisah, yang disebut juga sistem pemrosesan file. Dimana masing-masing file diperuntukkan hanya untuk satu program aplikasi saja. Pengantar Basis Data 2 Pengantar Basis Data Perhatikan gambar 1 mengenai suatu universitas yang mempunyai dua sistem yakni sistem yang memproses data mahasiswa dan sistem yang mengelola data mata kuliah. Kelemahannya dari sistem pemrosesan file ini antara lain : 1. Timbulnya data rangkap (redundancy data) dan Ketidakkonsistensi data (Inconsistency data) Karena file-file dan program aplikasi disusun oleh programmer yang berbeda, sejumlah informasi mungkin memiliki duplikasi dalam beberapa file. Sebagai contoh nama mata kuliah dan sks dari mahasiswa dapat muncul pada suatu file memiliki record-record mahasiswa dan juga pada suatu file yang terdiri dari record-record mata kuliah. Kerangkapan data seperti ini dapat menyebabkan pemborosan tempat penyimpanan dan biaya akases yang bertambah. Disamping itu dapat terjadi inkonsistensi data. Misalnya, apabila terjadi perubahan jumlah sks mata kuliah, sedangkan perubahan hanya diperbaiki pada file mata kuliah dan tidak diperbaiki pada file mahasiswa. Hal ini dapat mengakibatkan kesalahan dalam laporan nilai mahasiswa. 2. Kesukaran dalam Mengakses Data Munculnya permintaan-permintaan baru yang tidak diantisipasikan sewaktu membuat program aplikasi, sehingga tidak memungkinkan untuk pengambilan data. 3. Data terisolir (Isolation Data) Karena data tersebar dalam berbagai file, dan file-file mungkin dalam format –format yang berbeda, akan sulit menuliskan program aplikasi baru untuk mengambil data yang sesuai. 4. Masalah Pengamanan ( Security Problem ) Tidak semua pemakai diperbolehkan mengakses seluruh data. Bagian Mahasiswa hanya boleh mengakses file mahasiswa. Bagian Mata kuliah hanya boleh mengakses file mata kuliah, tidak boleh mengakses file mahasiswa. Tetapi sejak program-program aplikasi ditambahkan secara ad-hoc maka sulit melaksanakan pengamanan seperti yang diharapkan. 5. Data Dependence Pengantar Basis Data 3 Pengantar Basis Data Apabila terjadi perubahan atau kesalahan pada program aplikasi maka pemakai tidak dapat mengakses data. Sistem Basis data Seiring dengan berjalannya waktu, lambat laun sistem pemrosesan file mulai ditinggalkan karena masih bersifat manual, yang kemudian dikembangkanlah sistem pemrosesan dengan pendekatan basis data. DBMS mahasiswa Program Aplikasi Mata kuliah Basis data Universitas Program Aplikasi Mahasiswa mata kuliah Gambar 2. Sistem basis data untuk suatu universitas Keterangan : Mhs ( Npm, nama, alamat, tgl_lahir ) Mt_kul ( kd_mk, nama_mk,sks ) Perhatikan gambar 2 di atas. Pada sistem ini record-record data disimpan pada satu tempat yakni basis data dan diantara program aplikasi maupun pemakai terdapat DBMS (Database Management System). Konsep Dasar Basis Data Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, mahasiswa, pembeli), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentu angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya. Basis Data adalah sekumpulan data yang terintegrasi yang diorganisasikan untuk memenuhi kebutuhan para pemakai di dalam suatu organisasi. Pengantar Basis Data 4 Pengantar Basis Data DBMS (Database Management System) adalah Perangkat Lunak yang menangani semua pengaksesan ke basis data Sistem Basis Data terdiri dari basis data dan DBMS. Gambar 3. Sistem Basis Data Istilah - Istilah Dasar Basis Data Enterprise Suatu bentuk organisasi seperti : bank, universitas, rumah sakit, pabrik, dsb. Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise. Contoh data operasional : data keuangan, data mahasiswa, data pasien Entitas Suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data. Contoh Entitas dalam lingkungan bank terdiri dari : Nasabah, Simpanan, Hipotik Contoh Entitas dalam lingkungan universitas terdiri dari : Mahasiswa, mata kuliah Kumpulan dari entitas disebut Himpunan Entitas Contoh : semua nasabah, semua mahasiswa Atribut (Elemen Data) Karakteristik dari suatu entitas. Contoh : Entitas Mahasiswa atributnya terdiri dari Npm, Nama, Alamat, Tanggal lahir. Nilai Data (Data Value) Isi data / informasi yang tercakup dalam setiap elemen data. Contoh Atribut Nama Mahasiswa dapat berisi Nilai Data : Diana, Sulaeman, Lina Pengantar Basis Data 5 Pengantar Basis Data Kunci Elemen Data (Key Data Element) Tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas. Contoh Entitas Mahasiswa yang mempunyai atribut-atribut npm, nama, alamat, tanggal lahir menggunakan Kunci Elemen Data npm. Record Data Kumpulan Isi Elemen data yang saling berhubungan. Contoh : kumpulan atribut npm, nama, alamat, tanggal lahir dari Entitas Mahasiswa berisikan : "10200123", "Sulaeman", "Jl. Sirsak 28 Jakarta", "8 Maret 1983". Keuntungan Sistem Basis Data 1. Terkontrolnya kerangkapan data Dalam basis data hanya mencantumkan satu kali saja field yang sama yang dapat dipakai oleh semua aplikasi yang memerlukannya. 2. Terpeliharanya keselarasan (kekonsistenan) data Apabila ada perubahan data pada aplikasi yang berbeda maka secara otomatis perubahan itu berlaku untuk keseluruhan 3. Data dapat dipakai secara bersama (shared) Data dapat dipakai secara bersama-sama oleh beberapa program aplikasi (secara batch maupun on-line) pada saat bersamaan. 4. Dapat diterapkan standarisasi Dengan adanya pengontrolan yang terpusat maka DBA dapat menerapkan standarisasi data yang disimpan sehingga memudahkan pemakaian, pengiriman maupun pertukaran data. 5. Keamanan data terjamin DBA dapat memberikan batasan-batasan pengaksesan data, misalnya dengan memberikan password dan pemberian hak akses bagi pemakai (misal : modify, delete, insert, retrieve) 6. Terpeliharanya integritas data Jika kerangkapan data dikontrol dan kekonsistenan data dapat dijaga maka data menjadi akurat Pengantar Basis Data 6 Pengantar Basis Data 7. Terpeliharanya keseimbangan (keselarasan) antara kebutuhan data yang berbeda dalam setiap aplikasi Struktur basis data diatur sedemikian rupa sehingga dapat melayani pengaksesan data dengan cepat 8. Data independence (kemandirian data) Dapat digunakan untuk bermacam-macam program aplikasi tanpa harus merubah format data yang sudah ada Kelemahan Sistem Basis Data - Memerlukan tenaga spesialis - Kompleks - Memerlukan tempat yang besar - Mahal Pengguna Basis Data 1. System Engineer Tenaga ahli yang bertanggung jawab atas pemasangan Sistem Basis Data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual 2. Database Administrator (DBA) Tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya. Tugas DBA : o Mengontrol DBMS dan software-software o Memonitor siapa yang mengakses basis data o Mengatur pemakaian basis data o Memeriksa security, integrity, recovery dan concurency Program Utilitas yang digunakan oleh DBA : o Loading Routines Membangun versi utama dari basis data o Reorganization Routines Mengatur / mengorganisasikan kembali basis data Pengantar Basis Data 7 Pengantar Basis Data o Journaling Routines Mencatat semua operasi pemakaian basis data o Recovery Routines Menempatkan kembali data, sebelum terjadinya kerusakan o Statistical Analysis Routines Membantu memonitor kehandalan sistem 3. End User (Pemakai Akhir) Ada beberapa jenis (tipe) pemakai terhadap suatu sistem basis data yang dapat dibedakan berdasarkan cara mereka berinteraksi terhadap sistem : a. Programmer aplikasi Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan (embedded) dalam program yang ditulis pada bahasa pemrograman induk (seperti C, pascal, cobol, dll) b. Pemakai Mahir (Casual User) Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan oleh suatu DBMS c. Pemakai Umum (End User / Naïve User) Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah ditulis (disediakan) sebelumnya d. Pemakai Khusus (Specialized/Sophisticated User) Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus seperti aplikasi AI, Sistem Pakar, Pengolahan Citra, dll, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan. Pengantar Basis Data Pertemuan 2 : LINGKUNGAN BASIS DATA Tujuan Instruksional Khusus : • Mahasiswa dapat menjelaskan tingkatan arsitektur basis data • Mahasiswa dapat menjelaskan konsep data independence, komponen DBMS, fungsi DBMS serta bahasa yang digunakan di dalam DBMS • Mahasiswa dapat mejelaskan perbedaan model data berbasis objek, record, konseptual, dan fisik • Mahasiswa dapat menjelaskan fungsi dan isi dari data dictionary • Mahasiswa dapat menjelaskan perbedaan arsitektur DBMS multi user Deskripsi Singkat : Basis data merupakan sumber informasi yang dapat dipakai bersama. Setiap pemakai membutuhkan pandangan yang berbeda terhadap data yang disimpan di dalam basis data. Untuk memenuhi kebutuhan tersebut, terdapat arsitektur komersial DBMS yang didasarkan pada perluasan arsitektur yang disebut sebagai arsitektur ANSI-SPARC. Oleh karena itu, materi ini akan membahas tingkatan arsitektur basis data, karakteristik fungsional DBMS, bahasa yang digunakan di dalam DBMS serta model-model data. Materi-materi tersebut mengetengahkan latar belakang informasi yang penting pada DBMS Bahan Bacaan : 1. Connoly, Thomas; Begg, Carolyn; Strachan, Anne; Database Systems : A Practical Approach to Design, Implementation and Management, 3rd edition, Addison Wesley, 2001. 2. Korth, H.; Database System Concept, 4th edition, Mc Graw Hill, New York, 1991. Lingkungan Basis Data 1 Pengantar Basis Data LINGKUNGAN BASIS DATA Tujuan utama dari sistem basis data adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan. Oleh karena itu, titik awal untuk perancangan sebuah basis data haruslah abstrak dan deskripsi umum dari kebutuhan-kebutuhan informasi suatu organisasi harus digambarkan di dalam basis data. Lebih jauh lagi, jika sebuah basis data merupakan suatu sumber yang bisa digunakan bersama maka setiap pemakai membutuhkan pandangan yang berbeda-beda terhadap data di dalam basis data. Untuk memenuhi kebutuhan ini, arsitektur komersial basis data yang banyak digunakan telah tersedia saat ini dan telah mengalami perluasan yaitu arsitektur ANSI-SPARC. Materi ini menyediakan latar belakan informasi yang penting pada basis data, diantaranya tiga tingkatan arsitektur ANSI-SPARC, pengenalan model data, fungsi yang disediakan oleh DBMS multi user. Tiga Tingkatan Arsitektur Basis data ANSI-SPARC Ada 3 tingkat dalam arsitektur basis data yang bertujuan membedakan cara pandang pemakai terhadap basis data dan cara pembuatan basis data secara fisik. 3 tingkatan arsitektur basis data : 1. Tingkat Eksternal (External Level) Tingkat eksternal merupakan cara pandang pemakai terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan hubungan antar entitas (relationship) yang diperlukan saja. 2. Tingkat Konseptual (Conseptual Level) Lingkungan Basis Data 2 Pengantar Basis Data Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya. Hal-hal yang digambarkan dalam tingkat konseptual adalah : - semua entitas beserta atribut dan hubungannya - batasan data - informasi semantik tentang data - keamanan dan integritas informasi Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte. 3. Tingkat Internal (Internal Level) Tingkat internal merupakan perwujudan basis data dalam komputer. Pada tingkat ini menggambarkan bagaimana basis data disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan / physical storage. Tingkat internal memperhatikan hal-hal berikut ini : - alokasi ruang penyimpanan data dan indeks - deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen - penempatan record - pemampatan data dan teknik encryption Lingkungan Basis Data 3 Pengantar Basis Data External LevelConseptual LevelInternal Level Gambar 1. Tingkatan Arsitektur Basis data Contoh : sebuah file Pegawai yang akan didefinisikan Tingkat Eksternal (External Level) : Cobol 01 PEG_REC. 02 PEG_NO PIC X(6). 02 DEPT_NO PIC X(4). 02 GAJI PIC 9(6). Tingkat Konseptual (Conceptual Level) : PEGAWAI NOMOR_PEGAWAI CHARACTER 6 NOMOR_DEPT CHARACTER 4 GAJI NUMERIC 6 Tingkat Internal (Internal Level) : FILE_PEGAWAI LENGTH = 22 PREFIX TYPE = BYTE (6), OFFSET = 0 EMP# TYPE = BYTE (6), OFFSET = 6, INDEX = EMPX DEPT# TYPE = BYTE (4), OFFSET = 12 PAY TYPE = FULLWORD, OFFSET = 16 Lingkungan Basis Data 4 Pengantar Basis Data Data Independence Tujuan utama dari 3 tingkat arsitektur adalah memelihara kemandirian data (data independence) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi. Ada 2 jenis data independence, yaitu 1. Physical Data Independence bahwa internal schema dapat diubah oleh DBA tanpa menggangu conceptual schema. Dengan kata lain physical data independence menunjukkan kekebalan conceptual schema terhadap perubahan internal schema. 2. Logical Data Independence bahwa conceptual schema dapat diubah oleh DBA tanpa menggangu external schema. Dengan kata lain logical data independence menunjukkan kekebalan external schema terhadap perubahan conceptual schema. Prinsip data independence adalah salah satu hal yang harus diterapkan di dalam pengelolaan sistem basis data dengan alasan-alasan sbb : 1. DBA dapat mengubah isi, lokasi, perwujudan dalam organisasi basis data tanpa mengganggu program-program aplikasi yang sudah ada. 2. Pabrik / agen peralatan / software pengolahan data dapat memperkenalkan produk-produk baru tanpa mengganggu program-program aplikasi yang sudah ada. 3. Untuk memindahkan perkembangan program-program aplikasi 4. Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data dengan memperhatikan perubahan-perubahan kebutuhan pengguna. Bahasa Dalam DBMS DBMS (Database Management systems) adalah kumpulan program yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data. Dengan adanya berbagai tingkatan pandangan dalam suatu basis data maka untuk mengakomodasikan masing-masing pengguna dalam piranti lunak manajemen basis data biasanya terdapat bahasa-bahasa tertentu yang disebut Data Sub language. Lingkungan Basis Data 5 Pengantar Basis Data Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen basis data. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol, PL/1, dsb). Secara umum maka setiap pengguna basis data memerlukan bahasa yang dipakai sesuai tugas dan fungsinya. Dalam basis data secara umum dikenal 2 data sub language : 1. Data Definition Language (DDL) Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya 2. Data Manipulation Language (DML) Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data Ada 2 jenis DML : 1. Procedural DML Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan. 2. Non Procedural Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya. Secara khusus pengguna menggunakan berbagai bahasa : Programmer aplikasi menggunakan bahasa-bahasa seperti Cobol, Informix, dll (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS. Pemakai terminal menggunakan bahasa Query (misal SQL) atau menggunakan program aplikasi (yang dirancang oleh programmer). Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS. DBMS mempunyai tugas untuk menangani semua bentuk akses kepada basis data, secara konsep : 1. Pengguna menyatakan permintaan akses menggunakan DBMS 2. DBMS menangkap dan menginterpretasikan 3. DBMS mencari : Lingkungan Basis Data 6 Pengantar Basis Data - eksternal / conceptual mapping - conceptual schema - konseptual / internal mapping - internal schema 4. DBMS melaksanakan operasi yang diminta terhadap basis data tersimpan. Proses 1 s/d 4 dapat dilakukan secara interactive atau dicompile dulu. Model Data Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data dala suatu organisasi. Fungsi dari sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami. Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record. 1. Model Data Berbasis Objek Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Beberapa jenis model data berbasis objek yang umum adalah : - entity-relationship - semantic - functional - object-oriented 2. Model Data Berbasis Record Pada model data berbasis record, basis data terdiri dari sejumlah record dalam bentuk yang tetap yang dapat dibedakan dari bentuknya. Ada 3 macam jenis model data berbasis record yaitu : - model data relasional (relational) - model data hierarkhi (hierarchical) - model data jaringan (network) Lingkungan Basis Data 7 Pengantar Basis Data Fungsi DBMS Layanan-layanan yang sebaiknya disediakan oleh database management system adalah : 1. Penyimpanan, pengambilan dan perubahan data Sebuah DBMS harus menyediakan kemampuan menyimpan, mengambil dan merubah data dalam basis data. 2. Katalog yang dapat diakses pemakai menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai. 3. Mendukung Transaksi Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan dengan transaksi yang sudah ada atau yang akan dibuat. 4. Melayani kontrol concurrency Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data yang sama secara bersamaan. 5. Melayani recovery Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut. 6. Melayani autorisasi Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai yang berwenang saja yang dapat mengakses basis data. 7. Mendukung komunikasi data Sebuah DBMS harus mampu terintegrasi dengan software komunikasi. 8. Melayani integrity Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku. 9. Melayani data independence Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur basis data yang sesungguhnya. 10. Melayani utility Sebuah DBMS sebaiknya menyediakan kumpulan layanan utility. Lingkungan Basis Data 8 Pengantar Basis Data Komponen DBMS QueryProcessorDDLCompilerDatabaseSchemaQueriesApplicationProgramsDMLPreprocessorProgramObject CodeDatabaseManagerDictionaryManagerSystemBufferFileManagerAccessMethodDatabasedanData DictionaryDBMSProgrammersUsersDBA Gambar 2. Komponen DBMS 1. Query Processsor Komponen yang merubah bentuk query ke dalam instruksi tingkat rendah ke database manager 2. Database Manager Database manager menerima query dan menguji skema eksternal dan konseptual untuk menentukan apakah record-record dibutuhkan untuk memenuhi permintaan. Kemudian DM memanggil file manager untuk menyelesaikan permintaan 3. File Manager Lingkungan Basis Data 9 Pengantar Basis Data Memanipulasi penyimpanan file dan mengatur alokasi ruang penyimpanan pada disk. 4. DML Preprocessor Modul yang merubah perintah DML embedded ke dalam program aplikasi dalam bentuk fungsi-fungsi yang memanggil dalam host language. 5. DDL Compiler Merubah perintah DDL menjadi kumpulan tabel yang berisi metadata. 6. Dictionary Manager Mengatur akses dan memelihara data dictionary. Data dictionary diakses oleh komponen DBMS yang lain. ProgramObject CodeQueryProcessorDictionaryManagerAuthorizationControlQueryOptimizerAccessMethodSystemBufferBufferManagerRecoveryManagerFileMaagerCommandProcessorIntegrityCheckerTransactionManagerSchedulerDatabaseManagerDataManagerDatabasedanDataDictionary Gambar 3. Komponen Software Utama Database Manager Lingkungan Basis Data 10 Pengantar Basis Data Komponen software utama database manager adalah 1. Authorization Control Modul yang memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi 2. Command Processor Memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi 3. Integrity Checker Untuk semua operasi yang merubah basis data, integrity checker memeriksa operasi yang diminta memerlukan batasan integritas. 4. Query Optimizer Modul ini menentukan strategi yang optimal untuk eksekusi query 5. Transaction Manager Modul ini mengerjakan proses-proses yang dibutuhkan operasi yang diterima transaksi 6. Scheduler Modul ini bertanggung jawab untuk menjamin operasi secara bersamaan terhadap basis data sehingga berjalan tanpa ada masalah antara yang satu dengan yang lain. 7. Recovery Manager Modul ini menjamin basis data tetap konsisten walaupun terjadi kerusakan. 8. Buffer Manager Modul ini bertanggung jawab terhadap pemindahan data antara main memory dan secondary storage, seperti disk dan tape. Arsitektur DBMS Multi User Teleprocessing Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini. Lingkungan Basis Data 11 Pengantar Basis Data IBM Compatible Gambar 4. Arsitektur Teleprocessing Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk pemakai berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS. Dengan cara yang sama, pesan dikembalikan ke terminal pemakai. Arsitektur ini menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor. Lingkungan Basis Data 12 Pengantar Basis Data File-Server Proses didistribusikan ke dalam jaringan sejenis LAN (Local Area Network). File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan (perhatikan gambar di halaman berikut ini). DatabaseWorkstation2Workstation1Workstation3LANfile serverfiles returnedrequest for data Gambar 5. Arsitektur File Server Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan. Kerugian arsitektur file-server adalah : - Terdapat lalulintas jaringan yang besar - Masing-masing workstation membutuhkan copy DBMS - Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan Lingkungan Basis Data 13 Pengantar Basis Data Client Server Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur client-server. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem. Sesuai dengan namanya, ada sebuah pemroses client yang membutuhkan sumber dan sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang harus diletakkan pada mesin yang sama. Secara ringkas, umumnya server diletakkan pada satu sisi dalam LAN dan client pada sisi yang lain. DatabaseClient 2client 1Client 3LANserver (with DBMS)selected data returnedrequest for data Gambar 6. Arsitektur Client Server Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan basis data kemudian mengembalikan hasil ke client. Lingkungan Basis Data 14 Pengantar Basis Data Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas, pemeliharaan data dictionary dan mengerjakan query serta proses update. Selain itu juga menyediakan kontrol terhadap concurrency dan recovery. Ada beberapa keuntungan jenis arsitektur ini adalah : • Memungkinkan akses basis data yang besar • Menaikkan kinerja • Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Hal ini mempermudah merubah mesin server jika hanya memproses basis data. • Biaya untuk hardware dapat dikurangi • Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur basis data • Biaya komunikasi berkurang • Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses basis data melewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan • Meningkatkan kekonsistenan • Server dapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan validasi hanya di satu tempat, aplikasi program mengerjakan pemeriksaan sendiri • Map ke arsitektur open-system dengan sangat alami Berikut ini adalah ringkasan fungsi client-server Client Server Mengatur user interface Menerima dan memproses basis data yang diminta dari client Menerima dan memeriksa sintaks input dari pemakai Memeriksa autorisasi Memproses aplikasi Menjamin tidak terjadi pelanggaran terhadap integrity constraint Generate permintaan basis data dan memindahkannya ke server Melakukan query/pemrosesan update dan memindahkan response ke client Memberikan response balik kepada pemakai Memelihara data dictionary Menyediakan akses basis data secara bersamaan Menyediakan kontrol recovery Lingkungan Basis Data 15 Pengantar Basis Data Data Dictionary Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam basis data. Data dictionary biasa disebut juga dengan metadata atau data mengenai data. Modul pengontrol otorisasi menggunakan data dictionary untuk memeriksa apakah seorang pemakai perlu mempunyai wewenang. Untuk mengerjakan pemeriksaan tersebut data dictionary menyimpan : • nama-nama pemakai yang mempunyai wewenang untuk menggunakan DBMS • nama-nama data item yang ada dalam basis data • data item yang dapat diakses oleh pemakai dan jenis akses yang diijinkan, misalnya: insert, update, delete atau read Sedangkan untuk memeriksa integritas data, data dictionary menyimpan : • nama-nama data item dalam basis data • jenis dan ukuran data item • batasan untuk masing-masing data item Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif. Sistem aktif selalu konsisten dengan struktur basis data karena secara otomatis dikerjakan oleh sistem. Sebaliknya, sistem pasif tidak konsisten terhadap perubahan basis data yang dilakukan oleh pemakai. Pengantar Basis Data Pertemuan 3 dan 4 : MODEL DATA RELASIONAL Tujuan Instruksional Khusus : • Mahasiswa dapat menjelaskan pengertian model data relasional, istilah-istilah dalam model data relasional, jenis-jenis kunci relasional, serta aturan-aturan yang terdapat dalam model data relasional • Mahasiswa dapat menyebutkan keuntungan penggunaan model data relasional • Mahasiswa dapat mengetahui bahasa-bahasa yang digunakan pada model data relasional Deskripsi Singkat : Relational Database Management System (RDBMS) telah menjadi software pemrosesan data yang dominan saat ini. Software ini menggambarkan generasi kedua dari DBMS dan berbasiskan model data relasional yang diajukan oleh E.F. Codd (1970). Pada model relasional, seluruh data terstruktur secara logika di dalam sebuah relasi (tabel). Setiap relasi mempunyai nama dan terdiri dari atribut-atribut bernama (kolom). Setiap tuple (baris) berisikan satu nilai per atribut. Kekuatan yang besar dari model data relasional adalah struktur logikal yang sederhana. Pada materi ini akan dibahas mengenai terminologi dan konsep struktural dasar dari model data relasional, serta bahasa-bahasa yang dapat digunakan untuk merubah data dan pemanggilan data. Bahan Bacaan : 1. Connoly, Thomas; Begg, Carolyn; Strachan, Anne; Database Systems : A Practical Approach to Design, Implementation and Management, 3rd edition, Addison Wesley, 2001. 2. Korth, H.; Database System Concept, 4th edition, Mc Graw Hill, New York, 1991. Model Relasional 1 Pengantar Basis Data MODEL DATA RELASIONAL • Pengertian Basis Data Relasional Pada model relasional, basis data akan “disebar” atau dipilah-pilah ke dalam berbagai tabel dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang disebut baris data (row / record) dan lajur vertikal yang biasa disebut dengan kolom (column / field). Contoh Tabel dan keterhubungannya : MHS NPM Nama Alamat 10296832 Nurhayati Jakarta 10296126 Astuti Jakarta 31296500 Budi Depok 41296525 Prananingrum Bogor 50096487 Pipit Bekasi 21196353 Quraish Bogor MKUL KDMK MTKULIAH SKS KK021 P. Basis Data 2 KD132 SIM 3 KU122 Pancasila 2 Model Relasional 2 Pengantar Basis Data NILAI NPM KDMK MID FINAL 10296832 KK021 60 75 10296126 KD132 70 90 31296500 KK021 55 40 41296525 KU122 90 80 21196353 KU122 75 75 50095487 KD132 80 0 10296832 KD132 40 30 • Keuntungan Basis Data Relasional 1. Bentuknya sederhana 2. Mudah melakukan berbagai operasi data • Istilah dalam Basis Data Relasional : Relasi Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya. Atribut Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data. Tuple Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang, misalnya : NPM, nama mahasiswa, alamat, kota, dll. Model Relasional 3 Pengantar Basis Data Domain : Kumpulan nilai yang valid untuk satu atau lebih atribut Derajat (degree) : Jumlah atribut dalam sebuah relasi Cardinality : Jumlah tupel dalam sebuah relasi atribut MHS NPM Nama Alamat 10296832 Nurhayati Jakarta 10296126 Astuti Jakarta 31296500 Budi Depok 41296525 Prananingrum Bogor 50096487 Pipit Bekasi 21196353 Quraish Bogor Domain Baris Relasi Derajat (degree) Model Relasional 4 Pengantar Basis Data • Relational Key Super key Satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam relasi Candidate key Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik. Satu set minimal dari atribut menyatakan secara tak langsung dimana kita tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik. Primary key Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada. Alternate key Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate key yang tidak dipilih sebagai primary key. Foreign key (Kunci Tamu) Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan pada entitas anak dan sama dengan primary key induk direlasikan. Model Relasional 5 Pengantar Basis Data Alternate key Candidate Key Primary key MHS NPM Nama Alamat 10296832 Nurhayati Jakarta 10296126 Astuti Jakarta 31296500 Budi Depok 41296525 Prananingrum Bogor 50096487 Pipit Bekasi 21196353 Quraish Bogor • Relational Integrity Rules 1. Null Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut. Nilai (konstanta) Null digunakan untuk menyatakan / mengisi atribut-atribut yang nilainya memang belum siap/tidak ada. 2. Entity Integrity Tidak ada satu komponen primary key yang bernilai null. 3. Referential Integrity Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan. • Bahasa Pada Basis data Relational Menggunakan bahasa query 􀃆 pernyataan yang diajukan untuk mengambil informasi. Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya untuk pengelolaan data. Bahasa query terbagi 2 : 1. Bahasa Formal Model Relasional 6 Pengantar Basis Data Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis. Contoh : • Aljabar Relasional Bahasa query prosedural 􀃆 pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya. • Kalkulus Relasional Bahasa query non-prosedural 􀃆 pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya. Terbagi 2 : 1. Kalkulus Relasional Tupel 2. Kalkulus Relasional Domain 2. Bahasa Komersial Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly). Contoh : • QUEL Berbasis pada bahasa kalkulus relasional • QBE Berbasis pada bahasa kalkulus relasional • SQL Berbasis pada bahasa kalkulus relasional dan aljabar relasional • Contoh-contoh Basis Data Relasional : - DB2 􀃆 IBM - ORACLE 􀃆 Oracle - SYBASE 􀃆 Powersoft - INFORMIX 􀃆 Informix - Microsoft Access 􀃆 Microsoft Pengantar Basis Data STRUCTURE QUERY LANGUAGE Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi. Komponen-Komponen SQL a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter. b. Data Manipulation Language (DML) : Digunakan untuk memanipulasi data dengan menggunakan perintah : select, insert, update, delete. Data Manipulation Language merupakan bagian terpadu bahasa SQL. Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara mendapatkannya. c. Data Control Language (DCL) : Digunakan untuk mengontrol hak para pemakai data dengan perintah : grant, revoke SQL 1 Pengantar Basis Data S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L CREATE DROP ALTER D D L SELECT INSERT UPDATE DELETE D M L GRANT REVOKE DCL DATA DEFINITION LANGUAGE 1. CREATE TABLE Fungsi : membuat tabel Sintaks : CREATE TABLE tbname (col 1 data type data spec, col 2 data type data spec, . . PRIMARY KEY (col1,……)) Contoh : CREATE TABLE PERSONEL (REGNO CHAR(10) NOT NULL, NAME CHAR(45) NOT NULL, ADDRESS CHAR(45), BIRTH DATE NOT NULL WITH DEFAULT, PRIMARY KEY (REGNO)) SQL 2 Pengantar Basis Data NULL Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT NULL : dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol) NOT NULL : pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record NOT NULL WITH DEFAULT : nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini. Nilai default-nya : Nol untuk tipe field NUMERIC Blank untuk tipe field CHARACTER CURRENT DATE untuk tipe field DATE CURRENT TIME untuk tipe field TIME Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah kolom. 2. CREATE VIEW Fungsi : membuat tabel view. View merupakan bentuk alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan. Tujuan membuat view : • Meningkatkan keamanan data • Meningkatkan kemandirian data • Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik) SQL 3 Pengantar Basis Data Properti : • Tidak terdapatnya data tambahan • View mencakup subset kolom dan / atau baris • View dapat berisikan data dari beberapa tabel dan / atau tabel-tabel view lainnya • View dapat berisikan perolehan data, misal : nilai rata-rata • Manipulasi data melalui view terbatas Sintaks : CREATE VIEW viewname (column1, column2, ……..) AS SELECT statement FROM tbname [WITH CHECK OPTION] Keterangan : View-name : nama view yang akan dibuat. Column : nama atribut untuk view Statement : atribut yang dipilih dari tabel basis data. Tabel-name : nama tabel basis data. Contoh : CREATE VIEW VPERSON (REGNO, NAME) AS SELECT REGNO, NAME FROM PAUL.PERSONEL 3. CREATE INDEX Fungsi : membuat index Sintaks : CREATE [UNIQUE] INDEX indexname ON nama_table (nama_kolom) Contoh : CREATE UNIQUE INDEX PRSONIDX ON PERSONEL(REGNO) Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat SQL 4 Pengantar Basis Data melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi UNIQUE akan menolak key yang sama dalam file. 4. DROP TABLE Fungsi : menghapus Tabel Sintaks : DROP TABLE tbname Contoh : DROP TABLE PERSONEL Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti : - semua record dalam tabel akan terhapus - index dan view pada tabel akan hilang - deskripsi tabel akan hilang 5. DROP VIEW Fungsi : menghapus view Sintaks : DROP VIEW viewname Contoh : DROP VIEW VPERSON 6. DROP INDEX Fungsi : menghapus index Sintaks : DROP INDEX indexname Contoh : DROP INDEX PRSONIDX 7. ALTER Fungsi : merubah atribut pada suatu tabel SQL 5 Pengantar Basis Data Sintaks : ALTER TABLE tbname MODIFY (nama_kolom tipe_kolom) ADD (nama_kolom tipe_kolom [[before, nama_kolom]]) DROP (nama_kolom tipe_kolom) Contoh : merubah Tabel TABX dengan menambah Field D. ALTER TABLE TABX ADD D CHAR(3) DATA MANIPULATION LANGUAGE 1. INSERT Fungsi : menambah baris (record) baru Sintaks : INSERT INTO tbname (col1, ...) VALUES (value1, ...) Catatan : Sintaks tersebut dapat digunakan jika jumlah kolom = jumlah nilai, tetapi jika dalam tabel semua kolom akan diisi dapat digunakan sintaks berikut ini : Sintaks : INSERT INTO tbname VALUES (value1, value2, ...) Nilai-nilai diisikan sebanyak kolom yang terdapat di tabel tersebut. 2. UPDATE Fungsi : merubah record Sintaks : UPDATE tbname SET field = ekspresi WHERE kondisi SQL 6 Pengantar Basis Data 3. DELETE Fungsi : menghapus record Sintaks : DELETE FROM tbname WHERE kondisi 4. SELECT Fungsi : menampilkan record Sintaks : SELECT [DISTINCT] colname FROM tbname [WHERE kondisi] [GROUP BY kondisi] [HAVING kondisi] [ORDER BY kondisi] Contoh Kasus DDL : • Membuat Tabel (CREATE TABLE) 1. CREATE TABLE S (Sn Char(5) NOT NULL, Sname Char(20) NOT NULL, Status Smallint NOT NULL, City Char(15) NOT NULL); 2. CREATE TABLE P (Pn Char(6) NOT NULL, Pname Char(20) NOT NULL, Color Char(6) NOT NULL, Weight Smallint NOT NULL); 3. CREATE TABLE SP (Sn Char(5) NOT NULL, Pn Char(6) NOT NULL, QTY INTEGER NOT NULL); SQL 7 Pengantar Basis Data 4. CREATE UNIQUE INDEX Sidx ON S(Sn); CREATE UNIQUE INDEX Pidx ON P(Pn); CREATE INDEX Sdx ON SP(Sn); CREATE INDEX Pdx ON SP(Pn); • Modifikasi Table P dengan perintah : RENAME COLUMN P.COLOR TO WARNA ALTER TABLE P ADD (City CHAR(15) NOT NULL) • Membuat View (CREATE VIEW) 1. Membuat view untuk suplier yang statusnya lebih besar dari 15 CREATE VIEW GOOD_SUPPLIERS AS SELECT Sn, Status, City FROM S WHERE Status > 15; 2. Membuat view yang berisi supplier yang tinggal di Paris CREATE VIEW Paris_Suppliers AS SELECT * FROM Supliers WHERE City = ' Paris ' 3. Membuat view dengan mengganti nama_atributnya CREATE VIEW Parts (PNum, Part_Name, WT) AS SELECT P#, Pname, Weight FROM Part WHERE COLOR = 'Red' SQL 8 Pengantar Basis Data Contoh Kasus DML : • Menambah record (INSERT) INSERT INTO S VALUES ('S1','Smith',20,'London'); INSERT INTO S VALUES ('S2','Jones,10,'Paris'); INSERT INTO S VALUES ('S3','Blake',30,'Paris') Tabel S, P dan SP isikan dengan data-data sebagai berikut : TABEL S Sn Sname Status City S1 Smith 20 London S2 Jones 10 Paris S3 Blake 30 Paris S4 Clark 20 London S5 Adams 30 Athens TABEL P Pn Pname Warna Weight City P1 Nut Red 12 London P2 Bolt Green 17 Paris P3 Screw Blue 17 Rome P4 Screw Red 14 London P5 Cam Blue 12 Paris P6 Cog Red 19 London TABEL SP Sn Pn qty S1 P1 300 S1 P2 200 S1 P 40 S1 P4 200 S1 P5 100 S1 P6 100 S2 P1 300 S2 P2 400 S3 P2 200 S4 P2 200 S4 P4 300 S4 P5 400 SQL 9 Pengantar Basis Data • Merubah record (UPDATE) 1. Merubah data (record) pada tabel P yang mempunyai nomor part P2, warnanya dirubah menjadi Kuning dan beratnya ditambah 5 UPDATE P SET Warna = 'Yellow', Weight = Weight + 5 WHERE Pn = 'P2' 2. Merubah record pada tabel S, statusnya menjadi dua kali status awal untuk supplier yang bertempat tinggal di kota London UPDATE S SET Status = 2 * Status WHERE City = 'London' • Menghapus record (DELETE) Menghapus record pada tabel S yang nomor supplier-nya S5 DELETE FROM S WHERE Sn ='S5' • Menampilkan record (SELECT 1 tabel) 1. Menampilkan semua data supplier SELECT * FROM S atau SELECT Sn, Sname, Status, City FROM S 2. Menampilkan semua nilai Pn pada tabel SP SELECT Pn FROM SP SQL 10 Pengantar Basis Data 3. Menampilkan nomor supplier dan status untuk supplier yang tinggal di Paris SELECT Sn, Status FROM S WHERE City ='Paris' 4. Menampilkan no.supplier yang tinggal di Paris dengan status > 20 SELECT Sn FROM S WHERE City ='Paris" AND Status > 20 5. Menampilkan jumlah pengiriman P1 SELECT COUNT(*) FROM SP WHERE Pn = 'P1' 6. Perintah untuk menghindari hasil data yang sama terulang kembali (distinct) SELECT DISTINCT Pn FROM SP 7. Menampilkan no.supplier dan status bagi supplier yang tinggal di Paris dalam urutan status menurun SELECT Sn,Status FROM S WHERE City = 'Paris' ORDER BY Status desc 8. Menampilkan no.Part dari semua part yang dipasok oleh lebih dari seorang supplier SELECT Pn FROM SP GROUP BY Pn HAVING COUNT(*) > 1 SQL 11 Pengantar Basis Data 9. Menampilkan semua part yang nomornya dimulai dengan huruf C SELECT * FROM P WHERE Pname LIKE 'C%' • Menampilkan record (SELECT lebih dari satu tabel / JOIN) 1. Menampilkan semua supplier dan part yang keduanya bertempat tinggal pada kota yang sama SELECT Sn, Sname,S tatus, S.City , Pn, Pname, Warna, Weight FROM S,P WHERE S.City = P.City 2. Menampilkan nama supplier yang memasok barang dengan nomor part P2 SELECT Sname FROM S, SP WHERE S.Sn = SP.Sn AND SP.Pn = 'P2' 3. Menampilkan nama supplier yang memasok part berwarna merah SELECT Sname FROM S, SP, P WHERE S.Sn = SP.Sn AND SP.Pn = P.Pn AND P.COLOR = 'RED' • Menampilkan record (SELECT lebih dari satu tabel / SELECT Bertingkat) 1. Menampilkan nama supplier yang memasok barang dengan nomor part P2 SELECT Sname FROM S WHERE Sn IN (SELECT Sn FROM SP WHERE Pn = 'P2') atau SELECT Sname FROM S WHERE Sn = ANY (SELECT Sn FROM SP WHERE Pn = 'P2') SQL 12 Pengantar Basis Data 2. Menampilkan nama supplier yang memasok part berwarna merah SELECT Sname FROM S WHERE Sn IN (SELECT Sn FROM SP WHERE Pn IN (SELECT Pn FROM P WHERE Warna = 'Red')) 3. Menampilkan no.supplier dengan nilai status lebih kecil daripada nilai maksimum status yang ada pada tabel S SELECT Sn FROM S WHERE Status < (SELECT MAX(Status) FROM S) 4. Menampilkan nama supplier yang tidak memasok barang dengan nomor part P2 SELECT Sname FROM S WHERE Sn NOT IN (SELECT Sn FROM SP WHERE Pn = 'P2') 5. Menampilkan semua nomor supplier yang sama lokasinya dengan S1 SELECT Sn FROM S WHERE CITY = (SELECT CITY FROM S WHERE Sn = 'S1') • Fungsi Perhitungan COUNT : jumlah baris dan kolom SUM : jumlah nilai dam kolom AVG : rata - rata nilai dalam kolom MAX : nilai terbesar dalam kolom MIN : nilai terkecil dalam kolom Untuk SUM dan AVG nilainya harus numerik (INT, SMALLINT, FLOAT). Fungsi-fungsi tsb jika dikenakan pada nilai yang NULL maka nilainya akan diabaikan kecuali untuk COUNT(*) SQL 13 Pengantar Basis Data 1. Menghitung jumlah supplier SELECT COUNT(*) FROM S atau SELECT COUNT (Sn) FROM S 2. Menampilkan nomor part dan total kuantitas pengiriman dari setiap part SELECT Pn, SUM(QTY) FROM SP GROUP BY Pn 3. Menghitung jumlah kuantitas dari P2 yang telah disupply SELECT SUM (QTY) FROM SP WHERE Pn = 'P2' 4. Menampilkan jumlah pengiriman barang dengan nomor P4 dan dipasok oleh nomor suppplier S1 SELECT COUNT(*) FROM SP WHERE Pn = 'P4' AND Sn = 'S1' 5. Menampilkan nomor part dan total kuantitas dari masing-masing part SELECT Pn, SUM(QTY) FROM SP GROUP BY P3 DATA CONTROL LANGUAGE 1. GRANT Fungsi : digunakan untuk memberikan izin akses kepada user Sintaks : GRANT privileges ON tbname TO user SQL 14 Pengantar Basis Data Contoh : GRANT SELECT ON CLUB TO PUBLIC GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01 2. REVOKE Fungsi : digunakan untuk mencabut izin akses kepada user Sintaks : REVOKE privileges ON tbname FROM user Contoh : REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01 REVOKE ALL ON CLUB FROM PUBLIC SQL 15 Pengantar Basis Data Pertemuan 7 : RELATIONAL DATABASE MANAGEMENT SYSTEM (RDBMS) Tujuan Instruksional Khusus : • Mahasiswa dapat mengetahui perkembangan DB2 • Mahasiswa dapat menjelaskan objek-objek dan utilitas yang terdapat pada DB2 • Mahasiswa dapat mengetahui perkembangan Oracle • Mahasiswa dapat menjelaskan perbedaan antara perintah SQL dengan SQL *Plus Deskripsi Singkat : Pada materi ini akan dibahas mengenai software-software database yang berbasiskan model data relasional. Software tersebut diantaranya DB2 dan Oracle. Pada materi ini akan dijelaskan mengenai perkembangan DB2, objek-objek serta utilitas yang terdapat pada DB2. Sedangkan Oracle yang akan dibahas disini adalah mengenai produk-produk Oracle, perintah SQL dan SQL *Plus. Bahan Bacaan : 1. LePKom; DB2 Universal Database, 1998. 2. Martin, James; Chapman, Kathleen K; Leben, Joe; DB2 Concepts, Design, and Programming, Prentice Hall International Inc., 1989. 3. -------------- ; Introduction to Oracle 9i, Oracle Univeristy RDBMS 1 Pengantar Basis Data PENGENALAN DB2 Apakah DB2 itu ? DB2 merupakan relational database management system (RDBMS) yang memungkinkan pemakai melakukan CREATE, UPDATE dan CONTROL terhadap basis data relasional dengan menggunakan Structured Query Language (SQL). DB2 didisain untuk memperoleh informasi yang dibutuhkan dalam bisnis berskala kecil maupun besar. DB2 dapat dijalankan pada bermacam-macam platform termasuk sistem mainframe seperti MVS/ESA, VM, dan VSE; sistem midrange seperti OS/400, AIX, dan sistem yang berbasiskan UNIX lainnya; dan sistem tunggal atau yang berbasiskan LAN seperti OS/2, Windows, dan Linux Data diatur oleh DB2 database server yang dapat diakses dan dimanipulasi oleh aplikasi pada PC workstations yang berjalan dalam sistem operasi terkenal seperti OS/2, DOS, Windows, Linux dan dengan aplikasi yang dikembangkan untuk UNIX workstations dari IBM, HP, dan SUN. Aplikasi tersebut untuk menunjang client dan server platform yang akan ditambahkan di masa yang akan datang. DB2 merupakan suatu sistem terbuka. Selain untuk client platform yang disediakan oleh IBM, semua basis data yang ada dalam DB2 server dapat diakses dari beberapa produk yang menunjang protokol Distributed Relational Architecture (DRDA). Hal tersebut dimaksudkan untuk mengurangi kebutuhan komponen tambahan dan gateway yang mahal. IBM juga menyediakan fasilitas untuk mengakses RDBMS lainnya yang menggunakan server aplikasi DRDA yang spesifik. Fasilitas ini disebut Distributed Database Connection Services (DDCS). RDBMS 2 Pengantar Basis Data Selain fungsi manejemen data, DB2 juga memiliki alat yang mengijinkan pemakai membuat bermacam-macam aplikasi untuk mengakses dan bekerja dengan data. Juga untuk mengembangkan aplikasi dari multimedia dan object-oriented. Perkembangan Basis data IBM Akhir th. 70-an • System R : Riset IBM menyusun teknologi relasional Th. 80-an • Produk Relational DB untuk VM, VSE, MVS, AS/400, OS/2 • Riset selanjutnya : SQL Language, Performance, Distributed Data Th. 90-an • Distributed Relational Data Architecture (DRDA) • DB2 untuk AIX, HP-UX, SOLARIS, NT, SINIX, Parallel Edition,... • DataHub, DataPropagator, DataGuide, DataRefresher, DataJoiner,... • Riset selanjutnya : Optimization, Parallelism, Object-Relational Sekarang (’98) • Pemasok DB utama dengan pendapatan $1 milyar dari DB Engine • >2 PetaBytes Data yang dikelola oleh produk-produk IBM DBMS • IBM mengangani lebih dari 96 hak paten teknologi Relational DB di dunia • Pemimpin dalam pembuatan SQL pada DB2 Team Mengapa DB2 banyak digunakan : • Memenuhi kebutuhan bisnis untuk aplikasi-aplikasi baru • Scalable across • Menawarkan Open hardware dan system integration • Integrated Tools dan Usability enhancements DB2 Family IBM DB2 Family dari database management systems menangani ruang lingkup hardware platform yang besar mulai dari mainframe sampai dengan mesin-mesin RDBMS 3 Pengantar Basis Data yang berbasiskan Intel, server IBM dan non IBM RISC serta workstation, massively parallel processors, Sistem mid range AS/400, dan sistem mainframe yang dijalankan dengan sistem operasi VM, VSE dan MVS. Dengan tambahan database engines yang dijalankan pada setiap platform tersebut. DB2 family termasuk solusi “middleware” untuk pengaksesan basis data yang heterogen, replikasi data dan database systems management yang berjalan di seluruh platform. Produk-produk DB2 yang dijalankan pada OS/2 dan platform yang berhubungan dengan produk tersebut dikenal sebagai versi DB2 Common Server. Hal ini untuk membedakan bahwa produk-produk tersebut dapat dijalankan pada platform yang sejenis, yang berisikan fungsi produk yang serupa dan menggunakan bersama source code yang sama. Produk-produk DB2 Common Server merupakan client/server RDBMS untuk server IBM dan server non IBM, dan workstation yang berisikan fungsi-fungsi dimana aplikasi dapat dijalankan pada lingkungan client yang luas, fungsi-fungsi untuk menyimpan dan mengelola data, dan gateway yang mengizinkan pengaksesan data dengan SQL pada lingkungan yang heterogen. DB2 Common Server memegang peranan penting pada saat : • Client/Server Up-sizing PC dan workstation yang terintegrasi dengan LAN untuk menggunakan basis data secara bersamaan • Host Right-sizing Memindahkan aplikasi-aplikasi ke platform yang cocok untuk suatu pekerjaan. Sistem right-sizing dapat berisikan mesin-mesin dari semua ukuran, seperti : - Komputer mainframe - Komputer midrange - Komputer mini - Komputer personal • Host Down-sizing Memisahkan dan memindahkan aplikasi-aplikasi mainframe ke client workstation dan network server RDBMS 4 Pengantar Basis Data • Access to Host Enterprise Data Pengaksesan data untuk decision support processing (query, report, charting,…) yang membutuhkan integrasi dari sistem basis data yang berlainan untuk membentuk basis data yang memberikan informasi lebih luas. • DB2 Host Application Development Produk-produk DB2 Family sama dalam hal disain dan fungsi serta dapat digunakan untuk mengembangkan host applications pada workstation dan PC. DB2 database server tersedia untuk sistem-sistem sebagai berikut : MVS/ESA, OS/400, VM, VSE, OS2, UNIX-based platform (AIX, HP-UX, SOLARIS), Windows, Linux. Objek-Objek DB2 Kunci elemen pada Sistem Administrator DB2 adalah pengaturan obyek-obyek DB2 yang dibuat oleh software DB2. Obyek-obyek yang terdapat pada DB2 di antaranya : Tabel dan View yang digunakan oleh application programmer dan end user yang merupakan bagian dari pemrosesan aplikasi. Juga termasuk obyek-obyek yang biasanya tidak terlihat pada tingkatan aplikasi seperti table space, index, database, dan storage group. RDBMS 5 Pengantar Basis Data DATABASE 2, etc VOLUME2 VOLUME2 VOLUME1 VIEW3, etc VIEW2 VIEW1 INDEX1 INDEX2, etc TABLE2, etc TABLESPACE2, etc TABLE1 TABLESPACE1 DATABASE 1 OTHER SYSTEM OBJECTS DIRECTORY CATALOG DB2 SUBSYSTEM STORAGE GROUP 1 STORAGE GROUP 2 Gambar 1. Objek-objek DB2 RDBMS 6 Pengantar Basis Data Index View Dbm config file TABLE2, etc TABLE1 VIEW2 VIEW1 INDEX1 INDEX2, etc TABLE2, etc TABLE1 CATALOG LOG DB CONFIGURATION FILE DB CONFIGURATION FILE DATABASE 2 LOG CATALOG DATABASE 1 INSTANCE 1 Gambar 2. Objek-objek Universal DB2 DB2 Database DB2 Database berisikan sekumpulan tabel dan indeks-indeks yang berhubungan dengan tabel-tabel tersebut. Dengan mendefinisikan tabel-tabel dan indeks-indeks dapat membuat sebuah basis data yang khusus. Kita dapat memberikan sebuah nama pada basis data, tabel, dan indeks tersebut, dan dapat melakukan start dan stop sebuah basis data dalam sebuah operasi tunggal. Juga dapat memberikan hak akses ke seluruh obyek yang terdapat dalam basis data. Table Space Table Space merupakan area penyimpanan yang berisikan satu atau lebih tabel DB2. Secara fisik, sebuah table space berisikan 1 – 64 VSAM entry-sequenced data RDBMS 7 Pengantar Basis Data sets (ESDS) dan dapat berisikan lebih dari 64 gigabytes data. Sebuah table space dibagi dalam pages. Tiap-tiap page dapat dibaca atau ditulis pada sebuah direct-access storage device (DASD) dalam sebuah operasi tunggal. Table space dapat berisikan simple, partition, atau segmented. Simple table space berisikan satu atau lebih tabel yang lengkap. Partition table space dibagi dalam unit-unit yang disebut partitions, setiap unit dapat berisikan sebagian tabel. Pembagian tabel ke dalam partisi-partisi berdasarkan atas pendefinisian clustering index untuk tabel tersebut. Hanya satu tabel saja yang dapat disimpan dalam partition table space. Segmented table space dibagi dalam ukuran segment yang sama. Segment yang diberikan berisikan baris-baris yang hanya berasal dari satu tabel saja. Segmented table space memberikan peningkatan kinerja melalui simple table space untuk menyimpan banyak tabel karena hanya segment-segment milik sebuah tabel saja yang perlu diproses pada saat tabel dibaca atau dikunci. Sebuah table space menggambarkan bagian dasar dari DB2 database recovery. Jika sebuah table space berisikan banyak tabel, semuanya akan di-recover menjadi sebuah unit. Pada partition table space, setiap partisi dapat di-recover secara terpisah. Jika diinginkan, keseluruhan basis data dapat juga di-recover menjadi sebuah unit dengan menspesifikasikan nama basis data tersebut daripada menspesifikasikan nama table space selama proses recovery. Indeks Sebuah indeks berisikan sekumpulan pointer pada baris dalam sebuah tabel. Terdapat sebuah entry untuk setiap nilai dalam kolom dengan sebuah pointer yang disebut ‘RID’ (Record ID) untuk tiap baris yang berisikan nilai tersebut. Sebuah indeks yang didefinisikan pada sebuah tabel dapat digunakan untuk berbagai macam kebutuhan. Sebagai contoh : sebuah indeks dapat digunakan untuk melakukan pengaksesan data yang lebih efisien dengan mengizinkan individual atau multiple row yang diakses secara langsung bila dibandingkan dengan pembacaan data secara keseluruhan pada sebuah tabel. RDBMS 8 Pengantar Basis Data Unique index merupakan bentuk khusus dari indeks yang dapat digunakan untuk meyakinkan bahwa tidak terdapat dua baris pada sebuah tabel yang mempunyai nilai yang sama. Cluster index merupakan bentuk lain dari indeks yang dapat digunakan untuk mengontrol urutan pada seuah tabel dimana tabel tersebut disimpan. Cluster index juga dapat menentukan bagaimana baris-baris dibagi dalam partisi-partisi pada sebuah partition table space. Setiap indeks disimpan pada sebuah area penyimpanan yang disebut index space. Sebuah index space berisikan 1 – 64 VSAM ESDS. Pada saat indeks didefinisikan, DB2 secara otomatis membuat dan mengurus indeks tersebut. Program aplikasi dan pemakai interaktif tidak perlu secara spesifik menentukan penggunaan indeks, kecuali jika ingin melihat perbedaan kinerjanya. Storage Group DB2 menggunakan storage group untuk mengawasi cara bagaimana data pada DB2 yang secara fisik disimpan pada volume DASD. Sebuah storage group berisikan kumpulan volume DASD yang semuanya harus terletak pada peralatan yang sama jenisnya. Setiap storage group mempunyai nama, dan nama tersebut digunakan untuk menunjuk sebuah table space ke sebuah storage group yang dipilih. Sebuah simple table space harus disimpan pada sebuah storage group tunggal. Sedangkan partition table space, partisi-partisi yang berbeda dapat disimpan pada storage group yang berbeda. Sebuah index space juga dapat ditentukan pada storage group, dan index space bisa ditentukan pada storage group yang sama atau tidak sesuai dengan tabel yang berhubungan dengan indeks tersebut. Storage group dibuat oleh system administrator DB2 dengan menggunakan perintah SQL, khususnya fasilitas interaktif seperti SPUFI atau QMF. RDBMS 9 Pengantar Basis Data View View adalah pilihan data sebelum didefinisikan dimana sebuah aplikasi atau pemakai akan bekerja. Meskipun View digunakan sebagai “TABLE” oleh pemakai, data tetap terletak pada table aslinya. Pada saat sebuah view mendefinisikan sebuah virtual table yang menggunakan data pada base table, CREATE VIEW tidak perlu menspesifikasikan basis data, storage group, atau pilihan-pilihan lainnya yang berhubungan dengan sebuah tabel fisik. Perintah ALTER tidak dapat digunakan untuk sebuah view; untuk merubah view, view tersebut harus dihapus dan dibuat kembali. Menghapus view hanya mempengaruhi terhadap program yang menggunakan view tersebut; merubah view tidak mempengaruhi tabel-tabel yang digunakan oleh view tersebut. Kegunaan View - Memudahkan pengkodean : View mendefinisikan permintaan user - Keamanan : Penghapusan data dari view tidak dapat diakses oleh user DB2 Catalog • Sekumpulan tabel yang berisi informasi mengenai segala sesuatu yang didefinisikan dalam sistem • Digunakan oleh DB2 untuk menentukan jalur akses dan mengatur sumber-sumber • Struktur tabel catalog dibedakan oleh platform DB2 catalog terdiri dari sekumpulan tabel yang berisikan informasi mengenai seluruh obyek DB2 yang telah didefinisikan. Catalog juga berisikan informasi mengenai otorisasi, recovery, dan keterhubungan yang ada di antara tabel catalog yang berbeda. RDBMS 10 Pengantar Basis Data DB2/* Utilities DB2 Utilities digunakan untuk menjalankan fungsi-fungsi sistem administrasi yang berbeda-beda, seperti loading tables, recover, repairing data, serta monitoring dan tuning sistem DB2. Utilitas terbagi dalam 3 kategori : 1. Utilitas setup atau move 􀃆 LOAD dan UNLOAD 2. Utilitas maintenance 􀃆 REORGANIZE dan UPDATE STATISTIC 3. Utilitas recovery 􀃆 BACKUP dan RECOVER RDBMS 11 Pengantar Basis Data PENGENALAN ORACLE 9i Oracle9i menawarkan sebuah infrastruktur kinerja yang tinggi untuk e-bisnis. Pada Oracle9i terdapat semua yang diperlukan untuk mengembangkan dan mengatur aplikasi-aplikasi internet. Ada 2 produk Oracle9i : Oracle9i Applications Server dan Oracle9i Database, yang menyediakan infrastruktur yang lengkap dan mudah untuk aplikasi-aplikasi internet. Oracle9i Application Server Oracle9i Appplication Server (Oracle 9iAS) menjalankan seluruh aplikasi. Oracle Database menyimpan seluruh data. Oracle9i Application Server merupakan satu-satunya application server yang memasukkan layanan untuk seluruh aplikasi-aplikasi server yang ingin anda gunakan Oracle 9iAS dapat menjalankan: • Portal atau situs web • Aplikasi transaksi Java • Aplikasi intelijen bisnis Oracle 9iAS juga menyediakan integrasi antar pemakai, aplikasi, dan data melalui organisasi anda. Oracle9i Database Oracle9i Database mengatur seluruh data. Oracle9i database tidak hanya mengatur object relational data, tetapi juga data yang tidak terstruktur seperti : • Spreadsheets • Dokumen word • Presentasi PowerPoint • XML • Tipe data multimedia seperti MP3, grafik, video, dll RDBMS 12 Pengantar Basis Data Data tidak harus disimpan di dalam database. Oracle9i Database mempunyai layanan dimana anda dapat menyimpan metadata mengenai informasi yang disimpan di dalam sistem file. Anda dapat menggunakan database server untuk mengatur dan melayani informasi dimana informasi itu berada. Perintah-Perintah SQL pada Oracle9I SELECT Data Retrieval INSERT UPDATE DELETE MERGE Data Manipulation Language (DML) CREATE ALTER DROP RENAME TRUNCATE Data Definition Language (DDL) COMMIT ROLLBACK SAVEPOINT Transaction Control GRANT REVOKE Data Control Language (DCL) PL/SQL • PL/SQL merupakan perluasan SQL dengan keistimewaan disain dari bahasa pemrograman • Perintah DML dan query dimasukkan ke dalam kode unit-unit prosedural RDBMS 13 Pengantar Basis Data Interaksi SQL dengan SQL *Plus Formatted Report Query Results SQL *Plus Commands Server SQL Statements SQL Statements Buffer SQL *Plus Perbedaan Perintah SQL dengan SQL *Plus SQL SQL *Plus • Sebuah bahasa • Sebuah lingkungan • Standard ANSI • Milik Oracle • Keyword tidak dapat disingkat • Keyword dapat disingkat • Perintah-perintah memanipulasi data dan mendefinisikannya di dalam database • Perintah-perintah tidak dapat memanipulasi data di dalam database SQL buffer SQL *Plus buffer Perintah SQL Perintah SQL *Plus RDBMS 14 Model Entity Relationship Halaman 1 dari 16 MODEL ENTITY-RELATIONSHIP 􀂉 Model Entity Relationship Adalah suatu penyajian data dengan menggunakan Entity dan Relationship Entity 􀂉 Entity adalah obyek yang dapat dibedakan dalam dunia nyata 􀂉 Entity set adalah kumpulan dari entity yang sejenis 􀂉 Entity set dapat berupa : – Obyek secara fisik : Rumah, Kendaraan, Peralatan – Obyek secara konsep : Pekerjaan , Perusahaan, Rencana Relationship 􀂉 Relationship adalah hubungan yang terjadi antara satu atau lebih entity. 􀂉 Relationship set adalah kumpulan relationship yang sejenis. PEGAWAI KERJA PROYEK Model Entity Relationship Halaman 2 dari 16 ATRIBUT 􀂉 Atribut adalah karakteristik dari entity atau relationship, yang menyediakan penjelasan detail tentang entity atau relationship tersebut. 􀂉 Nilai Atribut merupakan suatu data aktual atau informasi yang disimpan pada suatu atribut di dalam suatu entity atau relationship. Jenis-jenis atribut : 􀂉 Key Atribut yang digunakan untuk menentukan suatu entity secara unik. 􀂉 Atribut Simple Atribut yang bernilai tunggal. 􀂉 Atribut Multivalue Atribut yang memiliki sekelompok nilai untuk setiap instan entity. TglLahir Ge NIP Nama PEGAWAI Gelar Model Entity Relationship Halaman 3 dari 16 􀂉 Atribut Composite Suatu atribut yang terdiri dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu. 􀂉 Atribut Derivatif Suatu atribut yang dihasilkan dari atribut yang lain. Nama Depan Nama Tengah Nama Belakang NAMA PEGAWAI TglLahir Umur PEGAWAI Model Entity Relationship Halaman 4 dari 16 Derajat dari relationship 􀂉 Menjelaskan jumlah entity yang berpartisipasi dalam suatu relationship LAPOR PEGAWAI KERJA PROYEK PEGAWAI PEGAWAI KERJA DEPARTEMEN Unary Degree (Derajat Satu) Binary Degree (Derajat Dua) Ternary Degree (Derajat Tiga) KOTA Model Entity Relationship Halaman 5 dari 16 Cardinality Ratio Constraint 􀂉 Menjelaskan batasan jumlah keterhubungan satu entity dengan entity lainnya. 􀂉 Jenis Cardinality Ratio 1 : 1 Pegawai Milik Kendaraan r1 P1 􀁺 􀁺 􀁺 k1 r2 p2 􀁺 􀁺 􀁺 k2 r3 p3 􀁺 􀁺 􀁺 k3 . . . 1 PEGAWAI MILIK KENDARAAN 1 Model Entity Relationship Halaman 6 dari 16 1 : N / N : 1 Pegawai Kerja Departemen r1 P1 􀁺 􀁺 􀁺 d1 r2 p2 􀁺 􀁺 􀁺 d2 r3 p3 􀁺 􀁺 􀁺 d3 r4 p4 􀁺 􀁺 . . . N 1 M : N Pegawai Kerja Proyek r1 P1 􀁺 􀁺 􀁺 pr1 r2 p2 􀁺 􀁺 􀁺 pr2 r3 p3 􀁺 􀁺 􀁺 pr3 r4 􀁺 . . . M N PEGAWAI KERJA DEPARTEMEN PEGAWAI KERJA PROYEK Model Entity Relationship Halaman 7 dari 16 Participation Constraint 􀂉 Menjelaskan apakah keberadaan suatu entity tergantung pada hubungannya dengan entity lain . Terdapat 2 macam Participation Constraint : Total Participation Keberadaan suatu entity tergantung pada hubungannya dengan entity lain. N 1 PEGAWAI PUNYA BAGIAN Partial Participation Keberadaan suatu entity tidak tergantung pada hubungannya dengan entity lain. N 1 PEGAWAI KERJA PROYEK Model Entity Relationship Halaman 8 dari 16 Weak entity 􀂉 Weak Entity adalah suatu Entity dimana keberadaan dari entity tersebut tergantung dari keberadaan entity lain. 􀂉 Entity yang merupakan induknya disebut Identifying Owner dan relationshipnya disebut Identifying Relationship. 􀂉 Weak Entity selalu mempunyai Total Participation constraint dengan Identifying Owner. NOPEG PEGAWAI TANGGUNGAN ………. NAMA ……… MILIK Model Entity Relationship Halaman 9 dari 16 Simbol-simbol ER-Diagram Notasi Arti 1. 1. Entity 2. 2. Weak Entity 3. 3. Relationship 4. 4. Identifying Relationship 5. 5. Atribut 6. 6. Atribut Primary Key 7. 7. Atribut Multivalue 8. 8. Atribut Composite 9. 9. Atribut Derivatif Model Entity Relationship Halaman 10 dari 16 Contoh Penggambaran Diagram ER NOPEG NAPEG ALAMAT NABAG LOKASI PEGAWAI TGLLAH ANGGOTA BAGIAN UMUR KERJA NOBAG PUNYA JAM 1 M N N 1 1 P R O Y E K NOPRO NAPRO ALM1 KDPOS LOKAPR TANGGUNGAN NAMA JNKELT HUBUNGAN N PUNYA KONTROL PIMPIN 1 1 1 N Model Entity Relationship Halaman 11 dari 16 Transformasi dari ERD ke Database Relasional 1. Setiap tipe Entity dibuat suatu relasi yang memuat semua atribut simple, sedangkan untuk atribut composite hanya dimuat komponen-komponennya saja. NOPEG ALM1 KDPOS PEGAWAI ALAMAT PEGAWAI (NOPEG, ALM1, KDPOS, …….) 2. Setiap relasi yang mempunyai atribut multivalue, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key dari relasi tersebut dengan atribut multivalue. LOKPR(NOPRO, LOKASI) 3. Setiap Unary Relationship 1:N, pada relasi perlu ditambahkan suatu foreign key yang menunjuk ke nilai primary keynya. NOPEG ……. 1 N PEGAWAI (NOPEG, ….., SUPERVISOR-ID) PROYEK NOPRO .... LOKASI PEGAWAI KONTROL Model Entity Relationship Halaman 12 dari 16 4. Setiap Unary Relationship M:N, buatlah relasi baru dimana primary keynya merupakan gabungan dari dua atribut dimana keduanya menunjuk ke primary key relasi awal dengan penamaan yang berbeda. NOBAR ……. M BARANG TERDIRI JUMLAH N KOMBAR (NOBAR, NOKOMP , JUMLAH) 5. Setiap Binary Relationship 1:1, dimana Participation Constraint keduanya total, buatlah suatu relasi gabungan dimana Primary Keynya dapat dipilih salah satu. 1 1 PEGAWAI (NOPEG, ... , NOPRO, ...). 6. Setiap Binary Relationship 1:1 dan salah satu Participation Constraintnya Total, maka Primary Key pada relasi yang Participation Constraintnya Partial menjadi Foreign Key pada relasi yang lainnya. 1 1 BAGIAN (NOBAG, ... , MANAGER) PEGAWAI KERJA PROYEK NOPEG NOPRO 1 PEGAWAI PIMPIN BAGIAN NOPEG NOBAG Model Entity Relationship Halaman 13 dari 16 7. Setiap Binary Relationship 1:1, dimana kedua Participation Constraintnya partial, maka selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary Key kedua tipe Entity yang berelasi. 1 1 PEKERJAAN ( NOPEG, NOPRO, …) 8. Setiap Binary Relationship 1 : N, dimana tipe Entity yang bersisi N mempunyai Participation Constraint Total, maka Primary Key pada relasi yang bersisi 1 dijadikan Foreign Key pada relasi yang bersisi N. N PROYEK (NOPRO, ... , NOBAG) PEGAWAI PROYEK KERJA NOPEG NOPRO BAGIAN PUNYA PROYEK NOBAG ………. NOPRO 1 Model Entity Relationship Halaman 14 dari 16 9. Setiap Binary Relationship 1 : N, dimana tipe Entity yang bersisi N mempunyai Participation Constraint partial, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi. N 1 PEKERJAAN (NOPEG, NOPRO, ……) 10. Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi. M N PEKERJAAN (NOPEG, NOPRO, …..) PEGAWAI PROYEK KERJA NOPRO NOPEG ……… PEGAWAI PROYEK KERJA NOPRO NOPEG …… .. Model Entity Relationship Halaman 15 dari 16 11. Setiap Ternary Relationship, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key ketiga tipe Entity yang berelasi. KOTA NOKOT PEKERJAAN ( NOPEG, NOPRO , NOKOT) 12. Setiap tipe Weak Entity, dibuat suatu relasi yang memuat semua atributnya dimana Primary Keynya adalah gabungan dari Partial Key dan Primary Key dari relasi induknya (identifying owner). NOPEG 1 N PUNYA TANGGUNGAN (NOPEG, NAMA, ….) PEGAWAI PROYEK KERJA NOPRO NOPEG PEGAWAI TANGGUNGAN ……… NAMA ……. Model Entity Relationship Halaman 16 dari 16 Hasil Transformasi dari Diagram ER ke database relasional : Skema Database PEGAWAI (NOPEG, NAPEG, ALM1, KDPOS,TGLLAH, UMUR, SUPERVISOR-ID, NOBAG) BAGIAN (NOBAG, NABAG, LOKASI, MANAGER) PROYEK (NOPRO, NAPRO, NOBAG) LOKPR (NOPRO, LOKAPR) PEKERJAAN (NOPEG, NOPRO, JAM) TANGGUNGAN (NOPEG, NAMA, JNKELT,HUBUNGAN) Normalisasi Hal 1 dari 11 hal NORMALISASI Definisi Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. Tujuan dari normalisasi 􀂉 Untuk menghilangkan kerangkapan data 􀂉 Untuk mengurangi kompleksitas 􀂉 Untuk mempermudah pemodifikasian data Proses Normalisasi 􀂉 Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan tertentu ke beberapa tingkat. 􀂉 Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal. Normalisasi Hal 2 dari 11 hal Tahapan Normalisasi Bentuk Tidak Normal Menghilangkan perulangan group Bentuk Normal Pertama (1NF) Menghilangkan ketergantungan sebagian Bentuk Normal Kedua (2NF) Menghilangkan ketergantungan transitif Bentuk Normal Ketiga (3NF) Menghilangkan anomali-anomali hasil dari ketergantungan fungsional Bentuk Normal Boyce-Codd (BCNF) Menghilangkan Ketergantungan Multivalue Bentuk Normal Keempat (4NF) Menghilangkan anomali-anomali yang tersisa Bentuk Normal Kelima Normalisasi Hal 3 dari 11 hal Ketergantungan Fungsional Definisi : Atribut Y pada relasi R dikatakan tergantung fungsional pada atribut X (R.X ---> R.Y), jika dan hanya jika setiap nilai X pada relasi R mempunyai tepat satu nilai Y pada R. Misal, terdapat skema database Pemasok-barang : Pemasok (No-pem, Na-pem) Tabel PEMASOK-BARANG No-pem Na-pem P01 Baharu P02 Sinar P03 Harapan Ketergantungan fungsional dari tabel PEMASOK-BARANG adalah : No-pem ---> Na-pem Ketergantungan Fungsional Penuh Normalisasi Hal 4 dari 11 hal Definisi : Atribut Y pada relasi R dikatakan tergantung fungsional penuh pada atribut X pada relasi R, jika Y tidak tergantung pada subset dari X ( bila X adalah key gabungan) Contoh : KIRIM-BARANG( No-pem, Na-pem, No-bar, Jumlah) No-pem Na-pem No-bar Jumlah P01 Baharu B01 1000 P01 Baharu B02 1500 P01 Baharu B03 2000 P02 Sinar B03 1000 P03 Harapan B02 2000 Ketergantungan fungsional : No-pem --> Na-pem No-bar, No-pem --> Jumlah (Tergantung penuh thd keynya) Ketergantungan Transitif Normalisasi Hal 5 dari 11 hal Definisi : Atribut Z pada relasi R dikatakan tergantung transitif pada atribut X , jika atribut Y tergantung pada atribut X pada relasi R dan atribut Z tergantung pada atribut Y pada relasi R. ( X Y, Y Z , maka X Z ) Contoh : No-pem Kode-kota Kota No-bar Jumlah P01 1 Jakarta B01 1000 P01 1 Jakarta B02 1500 P01 1 Jakarta B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Ketergantungan transitif : No-pem Kode-kota Kode-kota Kota , maka No-pem Kota Bentuk Normal Kesatu (1NF) Normalisasi Hal 6 dari 11 hal Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data Tabel KIRIM-1 (Unnormal) No-pem Kode-kota Kota No-bar Jumlah P01 1 Jakarta B01 1000 B02 1500 B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Tabel KIRIM-2 (1NF) No-pem Kode-kota Kota No-bar Jumlah P01 1 Jakarta B01 1000 P01 1 Jakarta B02 1500 P01 1 Jakarta B03 2000 P02 3 Bandung B03 1000 P03 2 Surabaya B02 2000 Diagram Ketergantungan Fungsional Normalisasi Hal 7 dari 11 hal Kode-kota No-pem Kota Jumlah No-bar Bentuk Normal Kedua (2NF) Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah memenuhi bentuk Normal kesatu, dan atribut yang bukan key sudah tergantung penuh terhadap keynya. Tabel PEMASOK-1 (2NF) No-pem Kode-kota Kota P01 1 Jakarta P02 3 Bandung P03 2 Surabaya Bentuk Normal Ketiga (3NF) Normalisasi Hal 8 dari 11 hal Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga bila relasi tersebut sudah memenuhi bentuk Normal kedua dan atribut yang bukan key tidak tergantung transitif terhadap keynya. Tabel KIRIM-3 (3NF) No-pem No-bar Jumlah P01 B01 1000 P01 B02 1500 P01 B03 2000 P02 B03 1000 P03 B02 2000 Tabel PEMASOK-2 (3NF) Tabel PEMASOK-3 (3NF) No-pem Kode-kota Kode-kota Kota P01 1 1 Jakarta P02 3 2 Surabaya P03 2 3 Bandung Normalisasi pada database perkuliahan Asumsi : Normalisasi Hal 9 dari 11 hal 􀂉 Seorang mahasiswa dapat mengambil beberapa mata kuliah 􀂉 Satu mata kuliah dapat diambil oleh lebih dari satu mahasiswa 􀂉 Satu mata kuliah hanya diajarkan oleh satu dosen 􀂉 Satu dosen dapat mengajar beberapa mata kuliah 􀂉 Seorang mahasiswa pada mata kuliah tertentu hanya mempunyai satu nilai Tabel MAHASISWA-1 ( Unnormal ) No-Mhs Nama - Mhs Jurusan Kode- MK Nama-MK Kode-Dosen Nama- Dosen Nilai 2683 Welli MI MI350 Manajamen DB B104 Ati A MI465 Analsis Prc. Sistem B317 Dita B 5432 Bakri Ak. MI350 Manajemen DB B104 Ati C AKN201 Akuntansi Keuangan D310 Lia B MKT300 Dasar Pemasaran B212 Lola A Tabel MAHASISWA-2 ( 1NF ) No-Mhs Nama- Mhs Jurusan Kode-MK Nama-MK Kode-Dosen Nama- Dosen Nilai 2683 Welli MI MI350 Manajamen DB B104 Ati A 2683 Welli MI MI465 Analsis Prc. Sistem B317 Dita B 5432 Bakri Ak. MI350 Manajemen DB B104 Ati C 5432 Bakri Ak. AKN201 Akuntansi Keuangan D310 Lia B 5432 Bakri Ak. MKT300 Dasar Pemasaran B212 Lola A Normalisasi Hal 10 dari 11 hal Diagram Ketergantungan Fungsional Nama_Mhs No-Mhs Jurusan Nilai Nama-MK Kode-MK Kode-Dosen Nama-Dosen Tabel KULIAH (2NF) Kode-MK Nama-MK Kode-Dosen Nama-Dosen MI350 Manajamen DB B104 Ati MI465 Analsis Prc. Sistem B317 Dita AKN201 Akuntansi Keuangan D310 Lia MKT300 Dasar Pemasaran B212 Lola Tabel MAHASISWA-3 (3NF) No-Mhs Nama-Mhs Jurusan 2683 Welli MI 5432 Bakri Ak. Normalisasi Hal 11 dari 11 hal Tabel NILAI (3NF) No-Mhs Kode MK Nilai 2683 MI350 A 2683 MI465 B 5432 MI350 C 5432 AKN201 B 5432 MKT300 A Tabel MATAKULIAH (3NF) Kode-MK Nama-MK Kode-Dosen MI350 Manajamen DB B104 MI465 Analsis Prc. Sistem B317 AKN201 Akuntansi Keuangan D310 MKT300 DasarPemasaran B212 Tabel DOSEN (3NF) Kode- Dosen Nama-Dosen B104 Ati B317 Dita B310 Lia

B212 Lola


Page 2