BAB I PENDAHULUAN
Database is Knowledge !! “Knowledge is of two kinds: we know subject ourselves, or we know where we can find information upon it.” -- Samuel Johnson (1709-1784) DataBase Basis Data terdiri atas Basis dan Data. Definisi Data • Data adalah fakta mengenai objek, orang, dll. • Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia, barang, hewan, peristiwa, konsep, keadaan dan yang direkam dalam bentuk angka, huruf, symbol, teks, gambar, bunyi, atau kombinasinya. Data dinyatakan dengan nilai (angka, deretan karakter, atau sombol-sombol). Sampai dengan membentuk suatu database, data mempunyai jenjang : karakter, field, record, file, database. Defisini Basis • Basis berarti gudang, tempat berkumpul sedangkan Sehingga bisa disimpulkan Basis Data (Database): • Himpunan kelompok data(arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah. • Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan • Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronis. • Basis data (database) merupakan kumpulan dari data yang saling berhubungan satu dengan yang lainnya. tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. Sebagai contoh: Airline Reservation Database Objects: Flight, Pilot, Passenger, Schedule, .. Database Universitas Objects: Mahasiswa, Dosen, Mata Kuliah, … Database merupakan salah satu komponen yang penting dalam sistem informasi. Penerapan database dalam sistem informasi disebut dengan sistem basis data (database system). Kriteria Basis Data, yaitu : • Bersifat data oriented dan bukan program oriented. • Digunakan oleh beberapa program aplikasi tanpa perlu mengubah basis datanya. • Berkembang dengan mudah, baik volume maupun strukturnya. • Memenuhi sistem-sistem baru secara mudah. • Digunakan dengan cara-cara yang berbeda. • Meminimalisasi kerangkapan data
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
1
Objektif basis data Tujuan awal utama dalam pengelolaan data dalam sebuah basis data adalah agar dapat memperoleh kembali data (yang dicari) dengan cepat dan tepat. Disamping itu pemanfaatan basis data untuk pengolahan data, juga memiliki tujuan-tujuan lain. Secara lengkap tujuan pemanfaatan basis data adalah sebagai berikut : 1. Kecepatan dan kemudahan (Speed) 2. Efisiensi Ruang Penyimpanan (Space) 3. Keakuratan (Accuracy) 4. Ketersediaan (Availability) 5. Kelengkapan (Completeness) 6. Keamanan (Security) 7. Kebersamaan Pemakaian (Sharability) Pendekatan Dalam membuat Basis Data • Pendekatan Tradisional Memiliki kelemahan, yaitu : Duplikasi data (data redundancy) Mengakibatkan : • Modifikasi dari data yang duplikat harus dilakukan untuk beberapa file sehingga kurang efisien • Pemborosan tempat media penyimpanan Tidak terjadi hubungan data (data relatability)
• Pendekatan Database Pendekatan database mencoba memperbaiki kelemahan-kelemahan yang terjadi di pendekatan tradisional, yaitu : Duplikasi data (data redundancy) dikurangi. Hubungan data (data relatability) dapat ditingkatkan.
Jenjang Data • Characters • Field • Record • File • Database
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
2
Operasi dasar basis data Setiap basis data umumnya dibuat untuk mewakili sebuah semesta data yang spesifik. Misalnya ada basis data akademik, kepegawaian, inventori dan lain-lain. Sementara dalam basis data akademik kita dapat menempatkan file mahasiswa, matakuliah, dosen kehadiran, nilai dan lain-lain. Karena itu operasi-operasi dasar yang dapat kita lakukan berkenaan dengan basis data dapat berupa : 1. Pembuatan basis data baru (create database) 2. Penghapusan basis data (drop database) 3. Pembuatan file/tabel baru ke suatu basis data (create table) 4. Penghapusan file/tabel dari suatu basis data (drop table) 5. Penambahan/pengisian data baru ke sebuah file/tabel (insert) 6. Pengambilan datda dari sebuah file/tabel (retrieve/search) 7. Pengubahan data dari sebuah file/tabel (update ) 8. Penghapusan data dari sebuah file/tabel (delete) Operasi pembuatan basis data dan tabel merupakan operasi awal yang hanya dilakukan sekali dan berlaku untuk seterusnya. Sedangkan operasi-operasi yang berkaitan dengan isi tabel (data) merupakan operasi rutin yang akan berlangsung ber-ulang-ulang dan karena itu operasi-operasi inilah yang lebih tepat untuk aktivitas pengolahan (management) dan pengolahan (processing) data dalam basis data. Evolusi Teknologi Basis Data Perkembangan teknologi basis data tidak terlepas dari perkembangan perangkat keras dan perangkat lunak. Perkembangan teknologi jaringan komputer dan komunikasi data merupakan salah satu penyumbang kemajuan penerapan basis data, yang kemudian melahirkan sistem basis data terdistribusi. Contoh dampak perkembangan tersebut adalah kemudahan untuk mengambil uang dengan fasilitas ATM (anjungan tunai mandiri). Perkembangan perangkat lunak seperti kecerdasan buatan, sistem pakar, dan pemrograman ber-orientasi objek, juga mempengaruhi perkembangan basis data, sehingga muncul istilah basis data ber-orientasi objek dan basis data cerdas. Penerapan basis data Hampir semua aspek pemanfaatan perangkat komputer dalam sebuah organisasi /perusahaan senantiasa berhubungan dengan basis data. Basis data merupakan salah satu komponen utama dalam setiap sistem informasi. Tidak ada sistem informasi yang bisa dibuat/dijalankan tanpa adanya basis data. Bidang-bidang fungsional yang telah umum memanfaatkan basis data demi efisiensi, akurasi dan kecepatan operasi antra lain : Kepegawaian, Pergudangan (inventory), Akuntasnsi, Reservasi (untuk hotel, pesawat, kereta api), Layanan pelanggan, dll. Bentuk-bentuk organisasi/perusahaan yang memanfaatkan basis data (sebagai komponen sistem informasi dalam organisasi/perusahaan dapat berupa : Perbankan, Asuransi, Rumah sakit, Produsen barang, Industri manufaktur, Pendidikan/sekolah, Telekomunikasi, dll.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
3
BAB II MANAJEMEN SISTEM BASIS DATA Basis data hanyalah sebuah objek yang pasif/mati, ia ada karena ada pembuatnya. Basis data tidak akan pernah berguna jika tidak ada pengelola/penggeraknya. Yang menjadi pengelola/penggeraknya secara langasung adalah program/aplikasi (software). Gabungan dari basis data dan pengelolanya menghasilkan sesbuah sistem basis data. Karena itu, secara umum sebuah sistem basis data merupakan sistem yanga terdiri dari kumpulan file (tabel) yang saling berhubungan (dalam sebuah basis data) dan sekumpulan program (DBMS) yang memungkingkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasinya. Sistem manajemen basis data (Database Management System) adalah merupakan suatu perangkat lunak yang didesain untuk membantu pemakai dalam mendefinisikan, menciptakan database, melakukan pemeliharaan, dan mengontrol penggunaan terhadap database. Sistem Basis Data Sistem basis data (database system) adalah suatu informasi yang mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan lainnya dan membuatnya tersedia untuk beberapa aplikasi didalam suatu organisasi. Fungsi DBMS Fungsi dan pelayanan yang disediakan oleh Database Manajemen System, yaitu : Data Storage, Retrieval dan Update Suatu DBMS harus mentediakan user dengan kemampuan untuk menyimpan, mengambil dan update data dalam database A User – Accessible Catalog Suatu DBMS harus menyediakan suatu catalog dimana deskripsi item data yang disimpan dapat diperoleh user Transaction Support Suatu DBMS harus menyediakan suatu mekanisme yang akan menjamin semua update yang menghubungkan ke transsaksi yang diberikan. Concurrency Control Services Suatu DBMS harus menyediakan mekanisme untuk menjamin bahwa database yang di update dengan benar oleh beberapa user secara bersamaan Recovery Service Suatu DBMS mesti menyediakan suatu mekanisme untuk mendapatkan kembali database dalam suatu kejadian, dimana database dirusak dalam beberapa cara. Authorisation Services Suatu DBMS harus menyediakan suatu mekanisme untuk menjamin bahwa hanya user yang berhak dapat mengakses database Support Data Communication Suatu DBMS harus mampu mendukung dalam penintegrasian software comunication Integrity Services Suatu DBMS harus menyediakan suatu maksud tertentu untuk menjamin data dalam database dan bertukarnya suatu data mengikuti aturan tertentu Services to promote data independence Suatu DBMS erdiri dari fasilitas untuk mendukung independence program dari struktur database yang aktual Utitlity services Suatu DBMS harus menyediakan satu set pelayanan utiliti
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
4
Komponen sistem basis data Dalam sebuah sistem basis data, secara lengkap akan terdapat komponen-komponen utama sebagai berikut : 1. Perangkat keras Perangkat keras yanga biasanya terdapat dalam sebuah sistem basis data dapat berupa komputer dengan sistem stand-alone atau sistem jaringan. 2. Sistem operasi Program pengelola basis data hanya dapat aktif jika sistem operasi yang dikehendakinya (sesuai) telah aktif. 3. Basis data Sebuah sistem basis data dapat memiliki beberapa basis data, setiap basis data dapat memiliki sejumlah objek basis data. 4. Sistem pengelola basis data (DBMS) Pengelolaan basis data secara fisik tidak dilakukan oleh pemakai secara langsung, tetapi ditangani oleh sebuah perangkat lunak yang khusus/spesifik yang disebut dengan DBMS. Perangkat lunak ini akan menentukan bagaimana data diorganisasikan, disimpan, diubah, dan diambil kembali, serta menerapkan mekanisme pengamanan data, pemakaian data dsb. Perangkat lunak yang termasuk DBMS antara lain : - dBase III +, dBase IV, FoxBase, MS-Access, dll (untuk DBMS sederhana) - MS-SQLServer, Oracle, Informix, Sybase, dll (untuk DBMS yang kompleks) 5. Pemakai Beberapa jenis pemakai suatu sistem basis data yang dibedakan berdasarkan cara mereka berinteraksi terhadap sistem : - Programmer Aplikasi. Pemakai yang ber-interaksi dengan basis data melalui Data Manipulation Language (DML) yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk (seperti C, Pascal, Cobol dll) - User Mahir. Pemakai yang ber-interaksi dengan sistem tanpa menulis modul program, melaikan hanya menggunakan bahasa query yang disediakan DBMS. - User Umum. Pemakai yang ber-interaksi dengan sistem melalui program aplikasi permanen. - User Khusus. Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan khusus, seperti sistem pakar, pengolahan citra, dll yang bisa saja mengakses dengan/tanpa DBMS. 6. Aplikasi (Perangkat lunak) lain (bersifat optional) Keuntungan Sistem Basis Data 1. Data dapat dipakai bersama-sama (Multiple User) 2. Data dapat distandarisasikan 3. Mengurangi kerangkapan data (Redudansi) 4. Adanya kemandirian data (Kebebasan) data atau data independent 5. Keamanan (Security) data terjamin 6. Keterpaduan data terjaga (Integrity) Kerugian Sistem Basis Data 1. Diperlukan tempat penyimpanan yang besar (Complexity) 2. Memerlukan ukuran yang besar (Size ) 3. Diperlukan tenaga yang terampil dalam mengelola data (Performance ) 4. Perangkat lunaknya mahal (Cost Of DBMS) 5. Menambah biaya perangkat keras ( Cost of Hardware ) 6. Biaya pengkonversian mahal ( Cost of Conversion ) 7. Memiliki tingkat kerusakan yang tinggi ( Higher impact of failure )
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
5
Dibandingkan dengan sistem berbasis kertas, DBMS memiliki 4 keunggulan : 1. Kepraktisan : Sistem yang berbasis kertas akan menggunakan kertas yang sangat banyak untuk menyimpan informasi, sedangkan DBMS menggunakan media penyimpanan skunder yang berukuran kecil tetapi padat informasi. 2. Kecepatan : Mesin dapat mengambil atau mengubah data jauh lebih cepat daripada manusia. 3. Mengurangi kejemuan : Orang cenderung menjadi bosan kalau melakukan tindakantindakan berulang yang menggunakan tangan. 4. Kekinian : Informasi yang tersedia pada DBMS akan bersifat mutakhir dan akurat setiap saat. Komponen utama sistem manajemen basis data dapat dibagi menjadi 4 macam, yaitu : 1. Perangkat keras, yaitu berupa komputer dan bagian-bagian di dalamnya, beserta perlengkapan pendukung lainnya. 2. Perangkat lunak, yaitu berfungsi melayani permintaan-permintaan pengguna 3. Data, data dalam basis data mempunyai sifat terpadu (integrated) dan berbagi (shared) 4. Pengguna, pengguna dapat diklasifikasikan menjadi pengguna akhir, pemrogram aplikasi dan administrator basis data. 5. Procedure
PEDOMAN UNTUK MEMILIH DBMS 1. Harus mudah digunakan 2. Mempunyai prosedur backup untuk membuat file pelindung 3. Dapat memberikan berita bila terjadi kegagalan sistem 4. Banyaknya file yang dapat dibuka serentak pada suatu saat 5. Kemampuan untuk merubah nilai default yang sudah ditentukan 6. Kemampuan dari operasi arithmatika. 7. Kemampuan untuk mengedit data dengan mudah 8. Kemampuan untuk mengurutkan data 9. Kecepatan pengolahannya 10. Kemampuan pembuatan laporan 11. Kemampuan memodifikasi struktur data 12. Kemampuan mempertemukan, menggabung atau pengupdate dengan dua atau lebih file 13. Kemampuan Indexing 14. Mempunyai Query Language 15. Kemampuan berhubungan dengan program yang lain
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
6
16. Jumlah record yang dapat ditangani oleh masing-masing file 17. Jumlah karakter per record yang dapat digunakan 18. Jumlah dari field yang dapat ditentukan dalam sebuah file 19. Panjang maksimum suatu field 20. Jumlah field kunci dalam satu file 21. Kemampuan hubungan dengan dengan file yang lain 22. Kemampuan menggunakan Harddisk 23. Kemampuan untuk digunakan pada sistem multi user 24. Harga dari paket tersebut. 25. Dukungan purna jual bila ada versi yang lebih baru. Pengguna Database 1. Database Manager Satu database manager adala satu modul program yang menyediakan interface antara penyimpanan data low-level dalam database dengan satu aplikasi program dan query yang diajukan ke sistem Tugas dan tanggung jawab Database Manager : • Interaksi dengan manager File • Intergrity enforcement (Integritas) • Security Enforcement (keamanan) • Backup dan recovery • Concurency Control 2. Database Administrator Merupakan orang yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap seluruh sistem baik data maupun program yang mengakses data. Fungsi database administrator, yaitu : • Mendefinisikan pola struktur database • Mendefinisikan struktur penyimpanan dan metode akses • Mampu memodifikasi pola dan organisasi phisik • Memberikan kekuasaan pada user untuk mengakses data • Menspesifikasikan keharusan/paksaan integritas data 3. Database User Satu tujuan utama dari sistem database adalah menciptakan suasana bagaimana informasi dibaca dan data baru disimpan dalam database. Ada 4 macam pemakai database yang berbeda keperluan dan cara aksesnya, yaitu : Programmer Aplikasi User Mahir (Casual User) User Umum (End User/Naïve User) User Khusus (Specialized User)
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
7
Hubungan antara user dapat dilihat pada gambar berikut :
Gambar Struktur sistem basis data secara keseluruhan (Hub Antara User)
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
8
BAB III ARSITEKTUR DATABASE Abtraksi Data Kegunaan utama sistem database adalah agar pemakai/user meampu menyusun suatu pandangan abtraksi dari data. Bayangan mengenai data tidak lagi memperhatikan kondisi sesungguhnya bagaimana satu data masuk ke database, disimpan dalam disk disektor mana, tetapi menyangkut secara menyeluruh bagaimana data tersebut dapat di abtraksikan/digambarkan menyerupai kondisi yang dihadapi oleh pamakai. Abstraksi data adalah bagaimana melihat data dalam sebuah sistem basis data. Salah satu tujuan dari DBMS adalah untuk menyediakan fasilitas dalam memperlihatkan data kepada pemakai/user. Untuk itu sistem akan menyembunyikan detail tentang bagaimana data itu disimpan dan dipelihara. Karena itu seringkali data yang terlihat oleh pemakai berbeda dengan yang tersimpan secara fisik. Arsitektur Database menurut ANSI-SPARC
Level Eksternal / View Level Pandangan user terhadap database Menggambarkan bagian dari database yang relevan untuk pemakai tertentu Level Konseptual / Logical Level Merupakan pandangan komunitas terhadap database Menggambarkan data apa yang disimpan dalam database dan bagaimana hubungan diantara data. Level ini juga berisi struktur logic dari keseluruhan database. Level Internal / Physical Level Merupakan gambaran phisik database pada computer Menggambarkan bagaimana data tersimpan ke dalam database
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
9
Data Independence Tujuan utama dari arsitektur DBMS adalah untuk menyediakan data independence. Dimana bahwa level yang lebih tinggi tidak dipengaruhi oleh pertukaran ke level yang lebih rendah. • Logical Data Independence Menunjukkan kekebalan skema external untuk bertukar ke skema konseptual. Bertukarnya ke skema konseptual seperti penambahan atau penghapusan entity, atribut dan relation baru tanpa harus menukar skema external yang ada atau harus ditulisnya kembali program aplikasi • Physical Data Independence Menunjukkan kekebalan skema konseptual untuk bertukarnya skema internal. Ex. Penggunaan organisasi file atau struktur penyimpanan yang berbeda penggunaan peralatan penyimpanan yang berbeda, pemodifikasian algoritma indek atau hashing tanpa harus menukar skeme konseptual (eksternal)
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
10
Pola dan Pemetaan oleh DBA Database Administrator
Pemakai A1
Pemakai A2
Pemakai B1
Pemakai B2
Bahasa Pemrograman
Bahasa Pemrograman
Bahasa Pemrograman
Bahasa Pemrograman
Pandangan Eksternal A
Pandangan Eksternal B
Pemetaan Konseptual External A
Pemetaan Konseptual External B
Pandangan Konseptual
DBMS
Pemetaan secara Internal / Phisik
Bahasa Basis Data (Database Language) DBMS merupakan perantara bagi pemakai dengan basis data dalam disk, Cara berinteraksi/berkomunikasi tersebut menggunakan suatu bahasa khusus yang disebut bahasa basis data yang terdiri dari sejumlah perintah/statement. Bahasa basis data dapat dipilah menjadi dua macam perintah yang digunakan untuk mengelola dan mengorganisasikan data, yaitu : 1. Data Definition Language (DDL) Memberikan kemudahan kepada DBA atau USER untuk mendeskripsikan entitas, attribut dan relasi, yang dibutuhkan untuk aplikasi database. Hasil dari perintah DDL adalah kumpulan table yang disimpan dalam file khusus yang disebut Kamus Data(Data Dictionary) 2. Data Manipulation Language (DML) Berguna untuk melakukan manipulasi dan pengambilan data, yaitu berupa • Penyisipan /penambahan data baru ke suatu basis data • Penghapusan data dari suatu basis data • Pengubahan data disuatu basis data Ada dua jenis DML • Prosedural • Nonprosedural Ada dua cara untuk mengakses data pada basis data : a. Mengetikkan perintah-perintah yang ditujukan kepada DBMS untuk memanipulasi suatu data. Biasanya DML yang digunakan adalah bersifat nonprosudural. b. Melalui program aplikasi yang menerbitkan instrruksi-instruksi internal ke DBMS untuk memanipulasi data dan memberikan hasil ke program. Bahasa pemrograman yang digunakan dapat berupa bahasa pemrograman konvensional Pascal, C, Cobol, Fortran dll, yang menggunakan pendekatan prosedural.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
11
Arsitektur Database Multiuser 1. TELEPROCESSING • Traditional architecture. • Single mainframe with a number of terminals attached. • Trend is now towards downsizing. 2. FILE-SERVER • File-server is connected to several workstations across a network. • Database resides on file-server. • DBMS and applications run on each workstation. Kelemahan File-Server • Significant network traffic. • Setiap workstation harus memiliki copy DBMS • Concurrency, recovery and integrity control more complex. 3. CLIENT-SERVER • Database dan DBMS terletak pada Server • Client mengatur sendiri hubungan dengan database, DBMS dan menjalankannya
Transaction Processing Monitors • Merupakan program yang mengontrol pertransferan data antaea Clients dan Servers saat terjadinya transaksi dan merupakan bagian dari OLTP (Online Transaction Processing) • Transaction Processing Monitor merupakan middle tier dari arsitektur three-tier clientserver
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
12
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
13
BAB IV MODEL DATA Model basis data menunjukkan suatu cara/mekanisme yang digunakan untuk megelola/mengorganisasikan data secara fisik dalam memori sekunder yang akan berdampak pada bagaimana kita mengelompokkan dan membentuk keseluruhan data yang terkait dalam sistem yang sedang kita tinjau. Suatu model adalah suatu representasi terhadap objek yang ada “real world” dan kejadian serta hubungan diantara mereka. Hingga saat ini, model basis data yang paling umum ada 3 macam, yaitu : hirarkis, jaringan dan relational. Model hirarkis Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang dibalik. Model ini menggunakan pola hubungan orang tua-anak. Setiap simpul (biasanya dinyatakan dengan lingkaran atau kotak) menyatakan sekumpulan medan. Simpul yang terhubung ke simpul pada level dibawahnya disebut orang tua sebaliknya simpul yang berada dibawah orang tua disebut anak. Setiap orang tua dapat memiliki satu (hubungan 1:1) atau beberapa anak (hubungan 1:M), tetapi setiap anak hanya memiliki satu orang tua. Contoh gambar yang menunjukkan model hirarkis : Dosen Siti Nurbaya
Dosen Asrab
Sistem Basis Data
Rudi
Asti
Bahasa Pascal
Dina
Dina
Pendidikan Agama
Edi
Ita
Edi
Model Jaringan Model ini menyerupai model hirarkis, dengan perbedaan suatu simpul anak dapat memiliki lebih dari satu orang tua. Oleh karena sifatnya yang demikian model ini bisa menyatakan hubungan 1:1 (satu orang tua mempunyai satu anak), atau 1:M (satu orang tua mempunyai banyak anak), maupun N:M (beberapa anak bisa mempunyai beberapa orang tua). Contoh gambar yang menunjukkan model jaringan : Dosen Siti Nurbaya
Sistem Basis Data
Rudi
Asti
Dosen Asrab
Bahasa Pascal
Dina
Pendidikan Agama
Edi
Ita
Model Relasional Didasarkan pada konsep relasi matematik (mathematical relation). Di dalam relasional data model, data dan relationship di gambarkan seperti tabel yang masing-masingnya mempunyai sejumlah kolom dengan nama yang unik. Mahasiswa
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
14
NPM
Nama
04401001 04401010T 04402011 04301001
Alamat
Nur’Ainun Okta Frida Elga Puspita Aldyan
Dosen Wali
Jln. Thamrin No 123 c Jln. Prof. HM Yamin 12 Helvetia Setia Budi
SMJ GND SMJ YHD
Dosen Wali Kode SMJ GDN YHD
Nama
Alamat
Ir. Sumijan, M.Sc Dr. Ir. Gunadi, M.Sc Yuhandri, S.Kom
Jln. Aru Gg Bunga 12 Jln. Sudirman 100 D Pasar Timur
Karakteristik model data relational adalah : a. Semua elemen data pada suatu baris dan kolom tertentu harus mempunyai nilai tunggal b. Semua elemen data pada suatu kolom tertentu dalam relasi yang sama harus mempunyai jenis yang sama c. Masing-masing kolom dalam suatu relasi mempunyai suatu nama(atribut) yang unik d. Pada suatu relasi atau table yang sama tidak ada dua baris yang identik Keuntungan menggunakan model relational a. Bentuknya sederhana untuk memudahkan pengembangan sistem yang ada b. Mudah melakukan berbagai operasi data, misalnya insert, delete, update c. Implementasinya mudah d. Dapat mengoptimasi biaya e. Keamanan atau security lebih mudah dilakukan Ada beberapa sifat yang melekat pada suatu tabel, yaitu : 1. Tidak ada baris yang kembar 2. Urutan baris bebas 3. Setiap kolom memiliki nama yang unik 4. Letak kolom bebas 5. Setiap kolom memiliki nilai tunggal dan jenisnya sama untuk semua baris DATABASE TERDISTRIBUSI Sebuah sistem database terdistribusi berisikan sekumpulan site. Setiap site dapat berpartisipasi saat mengeksekusi transaksi yang mengakses data di satu site atau beberapa site. Bentuk-bentuk topologi distribusi data o Fully Connected Network Keuntungan A B - Kalau salah satu node rusak yang lainnya masih dapat F berjalan C Kerugian E D - Control manajemen tidak terjamin o
Partially Connected Network A
C B
D
E
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
F
Keuntungan - Reliability rendah - Biaya dapat ditekan Kerugian - Control manajemen terjamin
tidak
15
o
Tree Structured Network Keuntungan - Bersifat sentral - Control manajemen terjamin Kerugian - Kalau node pusat rusak semua akan rusak
A
C
B
o
Ring Network G D
E
A
F
B
F
C
E
o
D
Keuntungan - Apabila ada satu yang rusak, yang lain masih bisa berjalan Kerugian - Control manajemen kurang terjamin karena bersifat desentralisasi
Star Network B
C
A
D
E
Keuntungan - Control manajemen lebih terjamin, karena bersifat sentral dan reliability rendah Kerugian - Kalau node pusat rusak semua akan rusak
Keuntungan Database terdistribusi o Pengawasan distribusi dan pengambilan data Jika sejumlah site yang berbeda dihubungkan satu sama lain, sehingga seorang pemakai yang berada pada satu site dapat mengakses data yang tersedia pada site yang lain. o Reliability dan Avaibility Sistem distribusi dapat terus-menerus berfungsi dalam menghadapi kegagalan site individu atau mata rantai komunikasi antar site. o Kecepatan pemrosesan query Jika kecepatan suatu query melibatkan data dibeberapa site, maka memungkinkan membagi query kedalam subquery yang dapat dieksekusi dalam bentuk parallel oleh beberapa site. o Otonomi local Pendistribusian sistem mengizinkan sekelompok indivisu dalam sebuah perusahaan untuk melatih pengawasan local melalui data mereka sendiri. Kemampuan ini dapat mengurangi ketergantungan kepada pemrosesan pusat o Efisiensi fleksibel Data dapat disimpan dekan dengan titik yang datanya digunakan. Data dapat secara dinamik bergerak atau disalin, atau salinannya dapat dihapus. Kerugian Database terdistribusi o Harga Software mahal o Kemungkinan kesalahan besar o Biaya pemrosesan tinggi
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
16
BAB V ENTITY RELATIONSHIP DIAGRAM Entity Relationship Diagram adalah high level conceptual data model yang dikembangkan oleh Chen (1976) untuk menfasilitasi perancangan database Konsep-konsep dasar dari Entity Relationship Model mencakup Entity, Relation dan Attributes Alasan diperlukan model E-R : 1. Dapat menggambarkan hubungan antar entity dengan jelas 2. Dapat menggambarkan batasan jumlah entity dan partisipasi antar entity 3. Mudah dimengerti oleh pemakai 4. Mudah disajikan oleh perancang database. Komponen-komponen yang terdapat dalam E-R terdiri dari : A. Entity Sesuatu yang dapat dibedakan dalam dunia nyata dimana informasi yang berkaitan dengannya dikumpulkan. Entity set merupakan kumpulan kumpulan entity yang sejenis, yang berupa a. Entity yang bersifat fisik, yaitu entity yang dapat dilihat. Contohnya : rumah, kendaraan, mahasiswa, dosen, dll b. Entity yang bersifat konsep atau logic, yaitu entity yang tidak dapat dilihat. Contohnya : pekerjaan, perusahaan, rencana, matakuliah, dll. Entity dapat dibedakan atas dua jenis yaitu : • Entity Kuat (Strong Entity) adalah suatu entity yang keberadaannya tidak tergantung kepada keberadaan entity yang lain. Strong Entity digambarkan dengan menggunakan persegi empat dilabelkan dengan nama entity.
•
Entity Lemah (Weak Entity) adalah suatu entity yang keberadaannya tergantung kepada keberadaan entity yang lainnya. Weak Entity digambarkan dengan menggunakan persegi empat yang diberi garis double dilabelkan dengan nama entity.
B. Attribute Adalah karakteristik dari entity atau relationship yang menyediakan penjelasan detail tentang atau relationship tersebut. Attribute value adalah suatu data actual atau informasi yang disimpan disuatu attribute di dalam suatu entity atau relationship
Attribute dapat dibedakan atas: • Simple Attribute adalah attribute dimana nilainya tidak dapat dibagi kedalam bagian yang lebih kecil, disebut juga atomic attribute. Contoh, attribute Sex dan Gaji (Salary). •
Composite Attribute adalah attribute dimana nilainya dapat dibagi kedalam bagian yang lebih kecil. Contoh, Alamat (Jl. Proklamasi No. 20 Padang Sumatera Barat). Attribute ini dapat Dibagi kedalam Jalan, Nomor, Kota dan Propinsi. Keputusan untuk memodelkan attribute Alamat sebagai simple atau composite adalah tergantung kepada bagaimana user memandang attribute tersebut.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
17
•
Single Valued Attribute adalah attribute yang hanya boleh mengandung satu nilai tertentu. Contoh, entity kantor cabang mempunyai satu nilai untuk nomor kantor cabang (Branch_no), misalnya B3.
•
Multi Valued Attribute adalah attribute yang boleh mempunyai lebih dari satu nilai. Sebagai contoh, entity kantor cabang mempunyai banyak nomor telepon (telp_no).
•
Derived Attribute adalah sebuah attribute yang nilainya diperoleh dari hasil proses dua atau lebih attribute yang ada. Contoh, Umur (Age) diperoleh dari Tanggal_lahir (DOB) – Tanggal Sekarang (Sysdate)
NIM
Nama
Mahasiswa Jurusan
C. Key •
Candidate key Merupakan kunci kandidat dari bebarapa atribut yang terdapat dalam sebuah entity. Sebagai contoh: Branch number (branch_no) adalah candidate key untuk entity type Branch. Candidate key mestilah mempunyai nilai yang unik untuk setiap occurence dari sebuah entity type, sebagai contoh tiap-tiap branch mempunyai branch number yang unik (Sebagai contoh B3), dan tidak ada lebih dari satu branch dengan branch number yang sama.
•
Primary Key Sebuah type entity dapat mempunyai satu atau lebih candidate key. Satu dari candidate key dipilih menjadi sebuah primary key. Sebagai contoh, Staff mempunyai National Insurance Number (NIN) yang unik dan juga Staff Number. Dalam hal ini mempunyai dua buah candidate key untuk entity staff, satu daripadanya harus dipilih untuk menjadi primary key. Contoh lainya yaitu : Company mendefinisikan Staff Number (contoh: SG14) adalah dalam size yang lebih pendek dibandingkan dengan National Insurance Number (contoh: WL220658D). Maka, berdasarkan ini, Staff Number menjadi Primary Key dan National Insurance Number menjadi Alternate Key.
•
Composite Key Dalam beberapa kasus, Key dari sebuah entity adalah terdiri dari beberapa attribute karena nilainya adalah unik untuk sebuah entity. Sebagai contoh, entity Misalkan
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
18
entity ADVERT mempunyai attribute-attribute berikut: {property_no, newspapaer_name, date_advert dan cost}. Beberapa property diiklankan pada banyak newspaper dalam satu tanggal tertentu. Untuk mengidentifikasi occurrence dari entity ADVERT diperlukan nilai-nilai dari atrribute property_no, newspaper_name dan date_advert. Maka entity ADVERT mempunyai composite primary key yaitu: {property_no + newspaper_name + date_advert} D. Relationship Adalah hubungan yang terjadi antara satu atau lebih entity. Relationship tidak mempunyai keberadaan fisik, kecuali yang mewarisi hubungan antara entity tersebut. Relasionship set adalah kumpulan relationship yang sejenis.
Dosen
Mengajar
Mahasiswa
E. Garis Yang menghubungkan antar objek dalam diagram E-R Kardinalitas Pemetaan Kardinalitas pemetaan atau rasio kardinalitas menunjukkan jumlah entity yang dapat dihubungkan ke satu entity lain dengan suatu relationship sets. Kardinalitas pemetaan meliputi : 1. Hubungan satu ke satu (one to one). Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam 2. Hubungan satu ke banyak (one to many) Yaitu satu entity dalam A dihubungkan dengan sejumlah entity dalam B. Satu entity dalam B dihubungkan dengan maksimum satu entity dalam A. 3. Hubungan banyak ke satu (many to one) Yaitu satu entity dalam A dihubungkan dengan maksimum satu entity dalam B. Satu entity dalam B dapat dihubungkan dengan sejumlah entity dalam A. 4. Hubungan banyak k banyak (many to many). Satu entity dalam A dihubungkan dengan sejumlah entity dalam B, & satu entity dalam B dihubungkan dengan sejumlah entity dalam A.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
19
BAB VI STRUCTURED QUERY LANGUAGE (SQL) Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih userfriendly. Oleh karena itu dikenal SQL sebagai bahasa query yang marketable. SQL menggunakan kombinasi aljabar relasional & kalkulus relasional. Meskipun SQL adalah bahasa query, namun SQL mempunyai banyak kemampuan lain disamping melakukan query terhadap basis data. SQL mempunyai kemampuan untuk mendefinisikan struktur data, modifikasi data dalam basis data dan menentukan konstrain sekuriti. SQL merupakan bahasa basis data relasional standard. Terdapat macam-macam versi SQL. Versi aslinya pertama kali dikembangkan oleh IBM San Jose Research Laboratory. Bahasa SQL mempunyai beberapa bagian yaitu : • Data Definition Language (DDL) DDL memberikan perintah untuk mendefinisikan skema relasi, penghapusan relasi, membuat indeks dan modifikasi skema relasi. •
Interactive Data-Manipulation Language (DML) DML merupakan bahasa query yang berdasarkan pada aljabar relasi dan kalkulus relasi tuple. Termasuk didalamnya adalah perintah untuk penyisipan, penghapusan dan modifikasi.
•
Embedded DML Bentuk embedded SQL biasanya terdapat dalam bahasa pemrograman multi guna seperti PL/I, Cobol , Pascal dan Fortran.
•
View Definition DDL SQL memasukkan perintah untuk mendefinisikan view.
•
Authorization DDL SQL memasukkan perintah untuk menentukan hak-hak akses ke relasi dan view.
•
Integrity DDL SQL memasukkan perintah untuk menentukan konstrain integritas yang harus dipenuhi oleh data yang tersimpan dalam basis data.
•
Transaction control SQL memasukkan perintah-perintah untuk menentukan awal dan akhir transaksi. Beberapa implementasi juga memungkinkan locking data untuk concurrency control. 1. DDL (Data Defenition Language) Data Defenition Language merupakan bagian dari SQL yang digunakan untuk mendefenisikan data dan objek database. Perintah digunakan untuk mendefenisikan suatu objek, yaitu membuat, mengubah, menghapus dan memberikan izin. Beberapa peritah DDL, yaitu : a. CREATE DATABASE Berguna untuk membuat database CREATE DATABASE Penusa; b. CREATE TABLE Berguna untuk membuat table. CREATE TABLE MAHASISWA(
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
20
NPM Nama Jenjang Jurusan
Varchar(10) PRIMARY KEY, Varchar(45) NOT NULL, Varchar(10), Varchar(30) )
c. ALTER TABLE Berguna utnuk mengubah atau menyisipkan ke dalam table ALTER TABLE Mahasiswa ADD Tahun Char(4); d. DROP TABLE Berguna untuk menghapus table Drop Table Mahasiswa ;
2. DML (Data Menipulation Language) Data Manipulation Language merupakan bagian dari SQL yang digunakan untuk manipulasi data. Perintah-perintah ini bertugas melakukan query dan perubahan yang dilakukan didalam suatu tabel. a. INSERT Berguna untuk menyisipkan baris dari suatu table INSERT INTO PEGAWAI VALUES( ‘0001’, ‘Ir. M. Anton’, ‘K01’ ) ; INSERT INTO PEGAWAI VALUES( ‘0002’, ‘Arianti, S.Kom’, ‘S01’ ) ; INSERT INTO JABATAN VALUES( ‘K01’, ‘KaBag Keuangan’, 3500000 ) ; INSERT INTO JABATAN VALUES( ‘S01’, ‘Staf Keuangan’, 2000000 ); INSERT INTO JABATAN VALUES( ‘S02’, ‘Staf Administrasi, 1400000 ); b. SELECT Digunakan untuk memilih data dari suatu table atau view SELECT [ALL | DISTINCT ] Nama_kolom_kolom_table [INTO Nama_Tabel ] [FROM Nama_nama_Tabel ] [WHERE Predikat ] [GROUP BY Ekspresi ] [ORDER BY Nama_kolom_Tabel ] ; SELECT * FROM PEGAWAI ; Untuk menampilkan semua field dari Table Pegawai SELECT Nama FROM PEGAWAI ; Hanya menampilkan Field Nama dari Table Pegawai SELECT * FROM JABATAN WHERE Kode=’K01’ ; Hanya menampilkan semua Field Nama dari Table Pegawai dimana kode = ‘K01’ SELECT Pegawai.Nama, Jabatan.Nama as NmJabatan, Jabatan.Gaji FROM Pegawai, Jabatan SELECT a.Nama, b.Nama as NmJabatan, b.Gaji FROM Pegawai a, Jabatan b
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
21
c. DELETE Berguna untuk menghapus baris dari suatu table DELETE FROM Jabatan WHERE Kode=’K01’ ; d. UPDATE Untuk mengubah isi dari kolom (field) pada suatu table UPDATE Pegawai Set Nama = ’M. Ares’ WHERE NIP=’0002’ ;
Contoh Kasus : 1. Buatlah perintah SQL untuk membuat table di bawah ini : Nama Table : MataKuliah Field Type Size KdMTK Text 8 Nama Text 40 SKS Byte 1 Semester Text 5 Nama Table Field NPM Nama Jenjang Jurusan
: Mahasiswa Type Text Text Text Text
Size 8 40 5 35
2. Tambahkan Field Kelompok dengan type Text(3) ke dalam table MataKuliah. 3. Masukkan beberapa Record di bawah ini, yaitu : KdMTK Nama SKS Semester Kelompok PKMI3101 Agama 3 I MPK KKMI3211 Kalkulus 3 II MKK KKMI3501 Teknik Riset Operasional 3 V MKK KBMI3101 Paket Program Niaga I 3 I MKB KBMI3201 Paket Program Niaga II 3 II MKB KBMI3301 Struktur Data 3 III MKB NPM 0602010 0602011 0602001 0602014
Nama Reni Agusti Johan Prabudi Meri Rianti M. Ichan
D3
Jenjang D3 MI D3 D3
Jurusan MI TI MI
4. Hapus Mata Kuliah dengan nama Kalkulus 5. Perbaiki record Mata Kuliah Agama menjadi Pend. Kewarganegaraan 6. Perbaiki record Jurusan TI menjadi Jurusan MI
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
22
BAB VII RELATIONAL ALJABAR •
Operator Relational Aljabar: ¾ Fundamental selection Unary operators projection union Binary operators set difference (union compatibilty) Cartesian product ¾ Additional rename intersection join quotient (division)
Contoh Relational Scheme :
Contoh Relational Instance:
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
23
•
Selection (Proses yang menghasilkan Horizontal Subset dari relasi yang diberikan):
Contoh Selection:
•
Projection (Proses yang menghasilkan Vertical Subset dari suatu relasi):
Projection dapat menghasilkan duplikat tuple.
•
Union:
Catatan: R dan S harus union compatible. Menghasilkan tuple yang ada di R atau di S, dan tidak ada di kedua2nya (no duplikat tuple) Dapat digunakan untuk insert new tuple ke relasi yang ada.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
24
•
Set Difference: Catatan: R dan S harus union compatible Menghasilkan tuple yang ada di R tapi tidak ada di S Asimmetris R-S ≠ S-R
Cartesian Product: R dengan derajat k 1 dan kardinalitas n 1 S dengan derajat k 2 dan kardinalitas n 2
Hasil RxS adalah relasi dengan derajat (k 1 + k 2 ) dan berisi (n 1 * n 2 ) tuple . Contoh:
•
Intersection:
Catatan: R dan S harus union compatible
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
25
•
Join:
Contoh Join:
Catatan: F adalah formula yang dipakai untuk selection Turunan Cartesian Product:
Tipe Join: o θ -join : dengan F berisi suatu operator θ o o
Equi-Join : dengan F berisi operator persamaan (=) Æ Natural-Join : Equi-Join R dan S pada suatu atribut yang sama diantara kedua relasi
Æ Contoh Natural-Join:
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
26
•
Division (Quotient): R dengan derajat k 1 S dengan derajat k 2 k 1 > k 2 dan k 2 ≠ 0
Contoh:
•
Contoh Query: ¾ List nama semua pegawai:
¾ List nama semua project beserta budgetnya: ¾ Cari nama semua project yang mempunyai budget lebih dari $225.000: ¾ List nama dan budget project dimana pegawai E1 bekerja:
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
27
¾ List nama dan budget project yang memperkerjakan programmer:
Bagaimana dengan query berikut?
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
28
BAB VIII ANOMALI & NORMALISASI DATA Anomali Adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan (misalnya menyebabkan ketidakkonsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus). Macam anomali ada 3, yaitu : 1. Anomali peremajaan, 2. Anomali penghapusan, dan 3. Anomali penyisipan. 1. Anomali Peremajaan Anomali ini terjadi bila terjadi perubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Sebagai contoh, terdapat relasi PESANAN_BELI yang mengandung data PEMASOK dan KOTA yang menyatakan lokasi pemasok. BARANG, dan JUMLAH yang menyatakan nama barang dan jumlah barang yang dipesan. PEMASOK Kartika Citra Candra Citra
KOTA Jakarta Bandung Jakarta Bandung
BARANG Monitor GGG ZIP-drive Keyboard Mouse CCP
JUMLAH 10 4 5 25
Gambar Relasi PESANAN_BELI Seandainya pemasok Citra berpindah ke kota lain, misalnya ke Bogor, dan pengubahannya hanya dilakukan pada data pertama ( data pemasok Citra pada relasi PESANAN_BELI ada dua buah), maka hasilnya adalah seperti yang terlihat pada gambar dibawah ini: PEMASOK Kartika Citra Candra Citra
KOTA Jakarta Bandung Jakarta Bandung
BARANG Monitor GGG ZIP-drive Keyboard Mouse CCP
JUMLAH 10 4 5 25
Gambar Relasi PESANAN_BELI setelah adanya perubahan Terlihat bahwa ada ketidakkonsistenan. Fakta pertama menyatakan bahwa pemasok Citra berlokasi di Bogor, tetapi fakta kedua menyatakan bahwa pemasok Citra berada di Bandung. Mana yang benar? Keadaan inilah yang menyatakan adanya ketidakkonsistenan.
2. Anomali penyisipan Anomaly ini terjadi jika pada saat penambahan hendak dilakukan, ternyata ada elemen data yang masih kosong dan elemen data tersebut justru menjadi kunci. Sebagai contoh, terdapat relasi yang berisi tiga buah atribut: - KULIAH - RUANG - TEMPAT
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
29
KULIAH RUANG TEMPAT Jaringan Komputer Merapi Gedung Utara Pengantar Basis Data Merbabu Gedung Utara Matematika I Rama Gedung Selatan Sistem Pakar Sinta Gedung Selatan Kecerdasan Merapi Gedung Utara Contoh relasi yang menimbulkan anomali penyisipan Relasi di atas menyatakan bahwa: • KULIAH menggunakan RUANG tertentu (misalnya Jaringan Komputer menggunakan ruang Merapi), dan • Suatu RUANG berada pada TEMPAT tertentu (misalnya ruang Merapi terdapat pada Gedung Utara). Masalahnya, bagaimana caranya menyimpan fakta bahwa ruang baru bernama Arjuna terdapat pada Gedung Selatan? Penyisipan tidak dapat dilakukan mengingat tak ada informasi KULIAH yang menggunakan ruang tersebut. Kasus serupa dapat dilihat pada relasi berikut: NO_SISWA NAMA_KURSUS BIAYA 10 Bahasa Inggris 60.000 10 Bahasa Prancis 80.000 10 Bahasa Mandarin 60.000 15 Bahasa Inggris 60.000 20 Bahasa Jepang 65.000 Contoh korelasi yang menimbulkan anomaly penyisipan Relasi di atas mencatat kursus-kursus yang diikuti oleh siswa (misalnya, siswa dengan nomor identifikasi 10 mengambil kursus bahasa Inggris, Prancis, dan Mandarin) selain juga menyatakan biaya kursus (misalanya biaya kursus Bahasa Inggris adalah sebesar 60.000). masalh akan timbul apabila dibuka kursus baru , misalnya Bahasa Arab, dengan biaya sebesar 70.000, akan tetapi untuk sementara belum seorang pun yang mengambil kursus ini. Akibatnya, data kursus baru itu tidak dapat dicatat! 3. Anomali Penghapusan Anomaly penghapusan terjadi sekiranya sesuatu baris (tupel) yang tak terpakai dihapus dan sebagai akibatnya terdapat data lain yan ghilang. Dengan mengambil contoh relasi KURSUS di depan, apa yang terjadi seandainya data bahwa siswa dengn identitas 20 yang mengambil kursus bahasa Jepang di hapus? Data yang menyatakan bahwa biaya kursus bahasa jepang sebesar 65.000 juga akan terhapus!
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
30
Pengertian Normalisasi Istilah normalisasi berasal dari E.F. Codd, salah seorang perintis teknologi basis data. Normalisasi memberikan panduan yang sangat membantu bagi pengembang untuk mencegah penciptaan struktur tabel yang kurang fleksibel atau mengurangi ketidak efisienan. Normalisasi adalah proses untuk mengubah suatu tabel yang memiliki masalah tertentu ke dalam dua buah atau lebih tabel yang tidak memiliki masalah tersebut. Masalah yang dimaksud disebut dengan istilah anomali. Bentuk-bentuk Normal Bentuk normalisasi adalah suatu aturan yang harus dipenuhi oleh tabel-tabel pada level normalisasi dalam basis data. Suatu tabel dikatakan berada dalam bentuk normal tertentu jika telah memenuhi kondisi-kondisi tertentu. Beberapa level yang biasa digunakan pada normalisasi adalah : 1. Bentuk normal pertama (1NF) 2. Bentuk normal kedua (2 NF) 3. Bentuk normal ketiga (3 NF) 4. Bentuk normal Boyce-Codd (BCNF) 5. Bentuk normal keempat (4 NF) 6. Bentuk normal kelima (5 NF) Bentuk normal pertama hingga ketiga merupakan bentuk normal yang umum dipakai. Artinya pada kebanyakan tabel, bila ketiga bentuk normal tersebut telah dipenuhi, maka pesoalan anomali tidak akan muncul lagi. Bentuk normal Boyce_Codd merupakan revisi terhadap bentuk normal ketiga. Bentuk normal 4 NF dan 5 NF hanya dipakai pada kasus-kasus khusus, yaitu tabel yang mengandung dependensi nilai banyak.
5 NF 4 NF BCNF 3 NF 2 NF 1 NF Tabel Umum
Gambar diatas menjelaskan bahwa setiap level normalisasi bergantung pada level sebelumnya. Semakin dalam levelnya, tabel mempunyai kecenderungan lebih baik, artinya memiliki problem yang lebih kecil ataupun sama sekali tidak memiliki permasalahan anomali. Pada normalisasi proses perancangan database berasal dari dokumen dasar yang dipakai pada system informasi. Selanjutnya dokumen dasar tersebut dibentuk menjadi UNF, 1 NF, 2 NF dan 3 NF. Contoh 1:
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
31
Dari dokumen berikut ini tentukan UNF, 1 NF, 2 NF dan 3 NF-nya untuk perancangan database dengan Normalisasi.
No. Anggota Nama Alamat Tgl. Masuk Kode Buku B001 B002 B003
KARTU ANGGOTA PERPUSTAKAAN : P001 : ALI : Jl. O. No. 1 : 27-7-97 Judul Tgl.Pinjam Tgl. Kembali BASIC 28-07-97 04-08-97 PASCAL 28-07-97 04-08-97 DEA 28-07-97 04-08-97
Bentuk UNF dan 1 NF Bentuk normal pertama biasanya dikenakan pada tabel yang belum ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki atribut yang berulang. No. Angg P001 P001 P001
Nama
Alamat
Tgl. Msk
Kd_Buku
Judul
Tgl. Pinj
ALI ALI ALI
Jl. O No.1 Jl. O No.1 Jl. O No.1
27-7-97 27-7-97 27-7-97
B001 B002 B003
BASIC PASCAL DEA
28-7-97 28-7-97 28-7-97
Tgl. Kem 4-8-97 4-8-97 4-8-97
Kelemahan : - Terjadi duplikasi karena No. Anggota dan Tgl. Masuk berkali-kali. - Inserting tidak dapat dilakukan tanpa adanya transaksi peminjaman. - Updating untuk field yang terduplikasi akan berkali-kali. - Deleting akan mengalami kekacauan, karena bila kita menghapus No. angggota P001 akan menghapus juga kode buku yang masih diperlukan. Catatan ! Untuk bentuk UNF No. Anggota, Nama, Alamat, dan Tgl. Masuk hanya ditulis satu kali. Bentuk 2 NF Bentuk normal kedua didefinisikan berdasarkan dependensi fungsional. Definisi bentuk normal kedua adalah : - Berada pada bentuk normal pertama - Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci perimer. Dalam ungkapan yang lebih praktis, bentuk normal kedua mensyaratkan setiap atribut bergantung kepada kunci primer. Bentuk normal kedua didapat dengan mencari field kunci (primary key) dan membentuk table berdasarkan primary key tersebut. Dari kasus diatas didapat: - No. Anggota - Kode Buku Anggota * No. Anggota Nama Alamat Tgl. Masuk
Buku *Kode Buku Judul Tgl. Pinjam Tgl. Kembali No. Anggota**
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
32
Keterangan : * **
: Primary Key : Foreign Key
Pada bentuk 2 NF maka masalah inserting, updating, dan deleting sudah teratasi, tapi ada field-field yang tergantung ke lebih dari satu table (kebergantungan transitif), yaitu ; - Tgl. Pinjam - Tgl. Kembali Bentuk 3 NF Pada bentuk normal ke tiga mempunyai syarat setiap table tidak mempunyai field yang tergantung transitif. Anggota No. anggota Nama Alamat Tgl. Masuk
Hasil Akhir : Anggota No. Anggota
Buku Kode Buku Judul Pinjaman No. Anggota Kode Buku Tgl. Pinjam Tgl. Kembali
Nama
Alamat
No. Anggota
Tgl. Masuk
Tgl. Pinj
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
Tgl. Kem
Buku Kode Buku
Judul
Kode Buku
33
BAB IX PERANCANGAN DENGAN TEKNIK E-R E-R atau Entity Relationship adalah teknik menghubungkan tabel-tabel Entitas menurut pedoman Konsep Sistem Basis Data. Jenis-jenis tingkat hubungan antar entitas (Cardinality): 1. One to One (1 to 1) Hubungan antara file pertama dan file kedua adalah satu berbanding satu. Contoh: 1 Mahasiswa
1
milik
NIM
Dibaca: Satu orang mahasiswa (hanya) memiliki satu buah NIM dan satu buah NIM (hanya) dimiliki oleh satu orang mahasiswa. 2. One to Many (1 to M) Hubungan antara file pertama dan file kedua adalah satu berbanding banyak atau banyak berbanding satu. Contoh: 1 Proyek
kerja
M Buruh
Dibaca: Sebuah proyek mempekerjakan banyak buruh dan seorang buruh (hanya) bekerja pada satu proyek. 3. Many to Many (M to N) Hubungan antara file pertama dan file kedua adalah banyak berbanding banyak. Contoh: M Dosen
ajar
M Mahasiswa
Dibaca: Seorang dosen mengajar banyak mahasiswa dan seorang mahasiswa diajar oleh banyak dosen. Penerapan Teknik E-R dalam perancangan Basis Data Langkah-langkah: 1. Menganalisa sistem yang berjalan a. Wawancara b. Pengamatan (observasi) 2. Menyusun kamus data (data dictionary) 3. Memilih primary key dari kamus data yang tersusun, dengan syarat unik dan mewakili sebuah entity. 4. Membentuk tabel-tabel entitas berdasarkan primary key yang terpilih dengan syarat tiap tabel tidak boleh mengandung field yang bergantung transitif. 5. Menganalisa relasi yang terjadi antar tabel entitas dan menggambarkannya. Relasi yang terjadi bisa One to One, One to Many atau Many to Many. 6. Menggambarkan hubungan antar entitas berdasarkan analisa relasi yang didapat dan memasang kunci-kunci relasi (foreign key) dengan aturan:
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
34
a. Bila relasi One to One, foreign key ditaruh pada ke-2 file atau dijadikan satu. b. Bila relasi One to Many, foreign key ditaruh pada file yang Many. c. Bila relasi Many to Many, maka dibuat file konektor yang berisi 2 foreign key dan atribut yang bergantung transitif. Contoh penerapan teknik E-R 1. Amatilah berkas berikut ini: KARTU PEMINJAMAN BUKU NIM : NAMA : Kd_buku
Judul
Pengarang
Tgl_pinjam
Tgl_kembali
Hasil wawancara: “Di perpustakan ini, ada beberapa buku dengan judul dan pengarang yang sama, namun demikian masing-masing buku memiliki kode buku sendiri-sendiri. Seorang mahasiswa boleh meminjam buku lebih dari satu!” 2. Menyusun kamus data: • • • • • • •
NIM Nama Kd_buku Judul Pengarang Tgl_pinjam Tgl_kembali
= nomor induk mahasiswa = nama mahasiswa = kode buku = judul buku = pengarang buku = tanggal peminjaman = tanggal kembali buku yang dipinjam
3. Menentukan primary key Dari kamus data yang terbentuk, maka dapat ditentukan primary key sebagai berikut:: • NIM • Kd_buku 4. Membuat tabel entitas Mahasiswa
Buku
NIM
Kd_buku
Nama
Judul
….
Pengarang
…..
…..
……
……
Di taruh di manakah field yang belum membentuk tabel ? Lengkapilah tabel yang terbentuk dgn field yg diperlukan!
5. Menganalisa relasi antar tabel entitas Hasil analisa: Seorang mahasiswa bisa meminjam banyak buku dan satu buku dapat dipinjam oleh banyak mahasiswa. Diagram: M Mahasiswa
pinjam
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
M Buku
35
6. Menggambarkan hubungan antara entitas:
Mahasiswa
Pinjam
NIM
NIM
Kd_buku
Nama
Kd_buku
Judul
Alamat
Tgl_pinjam
Pengarang
Tgl_lahir
Tgl_kembal
Penerbit
Telepon
i
Thn_terbit
M Mahasiswa
pinjam
Buku
M Buku
Keterangan: One to One One to Many Many to Many
Dari diagram tersebut, File Pinjam adalah file konektor, yang berisi foreign key (NIM dan Kd_buku) serta berisi field-field yang bergantung transitif, yaitu Tgl_pinjam dan Tgl_kembali. Perhatikan area yang berada dalam garis putus-putus! Area tersebut menggambarkan relasi yang terjadi antar entitas, yang sebelumnya digambarkan dengan diagram E-R.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
36
BAB X KEAMANAN DATABASE Keamanan Database ¾ Data merupakan sumber daya bernilai yang harus di atur dan diawasi secara ketat bersama dengan sumber daya corporate. ¾ Sebagian atau keseluruhan data corporate mempunyai kepentingan strategis dan karena itu harus dijaga agar tetap aman dan rahasia. ¾ Database Security merupakan mekanisme yang menjaga database dari serangan/ancaman yang disengaja maupun tidak sengaja. ¾ Pertimbangan keamanan tidak hanya diaplikasikan pada data yang ada dalam database. Pelanggaran terhadap keamanan dapat mempengaruhi bagian lain dari sistem, yang akan memberi akibat balik terhadap database. ¾ Keamanan database terkait dengan keadaan berikut : • Pencurian dan penipuan (theft and fraud) • Kehilangan kerahasiaan (Loss of confidentiality) • Kehilangan keleluasaan pribadi (Loss of privacy) • Kehilangan integritas (Loss of integrity) • Kehilangan ketersediaan (Loss of availability) ¾ Ancaman (threat) adalah segala situasi atau kejadian, baik disengaja maupun tidak disengaja yang dapat menimbulkan efek merugikan terhadap system dan berikutnya organisasi . Summary of Threats to Computer Systems
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
37
Typical Multi-User Computer Environment
Tindakan terhadap ancaman (Countermeasures – Computer-Based Controls) Berbagai tindakan balasan untuk ancaman yang terjadi dikaitkan dengan kontrol fisik sampai dengan prosedur administrative yang menyertakan : ¾ Authorisasi (Authorization) ¾ View ¾ Back-up dan Recovery ¾ Integrity ¾ Encryption ¾ RAID Technology •
Authorization (Otorisasi) Pemberian hak atau wewenang, yang menyebabkan subjek memiliki legitimasi untuk mengakses system atau objek-objek dalam system. • Authentication (Pembuktian keaslian) Suatu mekanisme yang menentukan apakah user yang mengakses benar-benar user yang dimaksud. • View Merupakan hasil dinamis dari satu atau lebih operasi relasional yang dioperasikan pada relasi/table dasar untuk menghasilkan relasi/table lainnya. View merupakan relasi/table virtual yang tidak benar-benar ada dalam database, tetapi dihasilkan berdasarkan permintaan oleh user tertentu pada saat tertentu. • Back Up Suatu proses yang secara periodik mengambil salinan database dan log file (dapat juga berupa program) untuk disimpan pada media penyimpanan offline. • Journaling Suatu proses pemeliharaan dan penyimpanan log file (jurnal) dari semua perubahan yang dilakukan terhadap database untuk kemudahan recovery bila terjadi kerusakan (failure). • Integrity Mencegah data dari ketidaksesuaian (invalid) dan mengakibatkan pemberian hasil yang salah. • Encryption
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
38
Penyandian (encoding) data dengan menggunakan algoritma khusus yang membuat data tidak dapat dibaca oleh program tanpa kunci decryption. •
RAID (Redundant Array of Independent Disks) Technology ¾ Hardware dimana DBMS berjalan dengan fault-tolerant, yang berarti bahwa DBMS harus tetap melanjutkan operasi walaupun terdapat satu komponen hardware yang rusak (fail). ¾ Memberikan kesan memiliki komponen redundant (lebih) yang dapat diintegrasikan kedalam sistem kerja walaupun terdapat satu atau lebih kerusakan komponen. ¾ Komponen hardware utama yang harus memiliki fault-tolerant meliputi disk drives, disk controllers, CPU, Power supplies, cooling fans. ¾ Disk drives merupakan komponen yang paling mudah diserang dengan jarak yang dekat antar kerusakan dibandingkan dengan komponen hardware lainnya. ¾ Salah satu solusinya dengan menggunakan RAID technology, yaitu menyediakan serangkaian besar disk, yang terdiri dari susunan beberapa disk independen diatur untuk memperbaiki ketahanan (reliability) dan meningkatkan performa (performance). ¾ Performa (performance) meningkat melalui data striping, yaitu data disegmentasi (dibagi) menjadi beberapa bagian dengan ukuran yang sama (striping units), yang secara jelas didistribusikan melewati beberapa disk. ¾ Ketahanan (reliability) diperbaiki melalui penyimpanan informasi berlebih (redundant) melewati disk dengan menggunakan skema parity atau skema error-correcting.
Kemanan pada Microsoft Access DBMS Menyediakan dua metode untuk pengamanan database, yaitu : ¾ Penetapan password untuk membuka database (keamanan sistem) ¾ Keamanan tingkat user, yang dapat digunakan untuk membatasi bagian dari database yang dapat dibaca/di-update oleh user (keamanan data) Securing the DreamHome Database Using a Password
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
39
User and Group Accounts Dialog Box for the DreamHome Database
User and Group Permissions Dialog Box
Creation of a New User with Password Authentication Set
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
40
Log on Dialog Box
Setting the Permissions
DBMS dan Keamanan Web ¾ Komunikasi internet dipercayakan pada TCP/IP sebagai protocol utama. ¾ Bagaimanapun TCP/IP dan HTTP tidak didesain dengan pemikiran keamanan. Tanpa software khusus, semua jalur internet berjalan secara terbuka dan siapapun yang melihat jalur tersebut dapat membacanya. ¾ Yang harus dipastikan pada saat pengiriman informasi melalui internet yaitu : • Tidak dapat diakses oleh siapapun kecuali pengirim dan penerimanya (privacy). • Tidak diubah selama pengiriman (integrity). • Penerima merasa yakin bahwa data tersebut berasal dari pengirim yang dimaksud (authenticity). • Pengirim merasa yakin bahwa penerima adalah penerima yang sebenarnya (non fabrication). • Pengirim tidak dapat menyangkal bahwa dirinya yang mengirim data (non repudiation) ¾ Harus dapat menjaga informasi ketika sudah mencapai web server. ¾ Executable Content dapat menampilkan malicious action dan tindakan harus dilakukan untuk mencegahnya, yaitu : • Data rusak atau Execution state dari program • Format ulang disk lengkap
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
41
• • • • •
Melaksanakan pe-nonaktif-an sisten secara total Mengumpulkan dan mengambil data rahasia Merebut identitas dan menirukan (impersonate) user Lock up resources, menyebabkan tidak dapat digunakan untuk user dan program Berakibat tidak fatal tetapi memberikan hasil yang tidak diinginkan, terutama pada output device.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
42
BAB XI DATABASE RECOVERY Database Recovery merupakan suatu proses penyimpanan/pengembalian database ke state yang benar pada saat terjadi kerusakan. Kebutuhan atas kontrol recovery disebabkan karena penyimpanan data pada umumnya menggunakan empat jenis media penyimpanan berdasarkan tingkat reliabilitas/tahan uji-nya. Terdapat 2 jenis penyimpanan : ¾ Volotile storage, biasanya tidak bertahan jika terjadi kerusakan sistem (system crash). contohnya : main memory ¾ Nonvolotile storage, magnetic disk merupakan online nonvolatile storage dan magnetic tape merupakan offline nonvolatile storage. lebih reliable dan lebig murah. Stable storage, merepresentasikan informasi yang telah direplika kedalam beberapa media penyimpanan non-volotile (biasanya disk) dengan jenis kerusakan yang terpisah. Terdapat beberapa jenis kerusakan yang dapat mempengaruhi proses database. Beberapa kerusakan hanya mempengaruhi main memory saja atau juga media yang lain. Kerusakan tersebut diakibatkan oleh : ¾ System Crashes, menyebabkan hilangnya data dari main memory. ¾ Media Failures, menyebabkan hilangnya sebagian data dari media penyimpanan secondary. ¾ Application Software errors, misalnya logical erroryang terdapat dalam program yang mengakses database sehingga menyebabkan satu atau lebih transaksi mengalami kegagalan. ¾ Natural physical disaster, bencana alam/musibah seperti :kebakaran, banjir, gempa bumi, kerusakan listrik. ¾ Carelessness, kecerobohan atau tindakan tidak sengaja yang menyebabkan kerusakan data, yang dilakukan oleh operator atau user. ¾ Sabotage, sabotase atau tindakan sengaja merusak atau mencuri data, fasilitas harware maupun software. Transaksi dan Recovery Transaksi merepresentasikan unit dasar dari recovery dalam sistem database. Recovery manager bertanggung jawab atas atomicity dan durability. Jika kesalahan terjadi antara penulisan ke buffer dan mengirimkan buffer database ke penyimpanan sekunder maka recovery manager harus menetapkan status dari transaksi yang melakukan penulsan pada saat terjadi keruskan. Jika transaksi dinyatakan commit, maka untuk memastikan durability, recovery manager harus melakukan redo (rollforward) terhadap perubahan transaksi. Jika transaksi belum committed pada saat terjadi kerusakan, recovery manager harus melakukan undo (rollback) segala akibat dari transaksi tersebut untuk menjamin atomicity transaksi. Jika hanya terdapat satu transaksi yang tidak diselesaikan, maka mengacu ke partial undo. Sedangkan jika seluruh transaksi tidak terselesaikan maka mengacu ke- global undo. :
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
43
DBMS Mulai pada saat t0, tetapi gagal pada saat tf. Diasumsikan data untuk transaksi T2 dan T3 telah dituliskan ke penyimpanan sekunder. T1 dan T6 harus tidak terselesaikan. Dikarenakan ketiadaan informasi lain, maka recovery manager harus melakukan redo untuk T2, T3, T4, dan T5. STATUS TRANSAKSI & OPERASI TAMBAHAN Suatu transaksi adalah unit terkecil dari kerja yang dapat diselesaikan atau tidak dapat diselesaikan. Beberapa operasinya dengan diagram transisinya :
BEGIN_TRANSACTION : memulai transaksi READ or WRITE : operasi baca atau tulis dari item database yang dieksekusi sebagai bagian dari transaksi END_TRANSACTION : operasi transaksi READ atau WRITE selesai dilakukan COMMIT_TRANSACTION : transaksi berakhir sukses sehingga semua perubahan (update) yang dilakukan melalui transaksi dapat dimasukkan ke database dan akan diselesaikan ROLLBACK (or ABORT) : transaksi berakhir dengan tidak sukses sehingga semua perubahan atau efek transaksi yang diaplikasikan ke database tidak dapat diselesaikan.
Fasilitas Recovery DBMS harus menyediakan fasilitas berikut untuk mendkung recovery : ¾ Mekanisme Backup, yang akan mebuat salinan dari database secara periodik. ¾ Fasilitas Logging (pencatatan), yang menyimpan catatan dari stata transaksi dan perubahan database. ¾ Fasilitas Checkpoint, yang memungkinkan merubah database yang sedang dalam pengembangan menjadi permanen. ¾ Recovery manager, yang mengizinkan DBMS untuk menyimpan database pada stata konsisten jika terjadi kerusakan/kesalahan. Log File (File catatan) Untuk menyimpan catatan dari transaksi database, DBMS memiliki file khusus yang disebut log file , yang berisi informasi tentang semua perubahan terhadap database. Catatan dapat berisi data-data berikut : ¾ Record Transaksti. Identifier transaksi Tipe dari record catatan (transaksi start, insert, update, delete, abort, commit) Identifier dari data item yang diakibatkan oleh aksi database (operasi insert, delete dan update) before-image dari data item, yaitu nilai sebelum dilakukan perubahan (hanya operasi update dan delete) after-image dari data item, yaaitu nilai sesudah perubahan (hanya operasi insert dan update) Informasi manajemen catatan, seperti pointer ke record catatan sebelum (previous) dan sesudah (next) untuk transaksi tersebut (seluruh operasi) ¾ Record Checkpoint
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
44
Catatan biasa digunakan untuk kepentingan lain dibandingkan untuk recovery (contoh untuk monitoring (pengawasan) dan auditing). Dalam hal ini informasi tambahan yang dapat disimpan dalam log file (contoh : pembacaan database, logon user, logoff dan lainnya) Contoh Log File
Log file dapat dibuat duplexed atau triplexed (yaitu dibuat dua atau tiga salinan terpisah), sehingga bila yang satu rusak masih terdapat yang lain. Terkadang Log file dipisahkan menjdai dua file random-access yang terpisah. Potensial terjadi bottleneck, dimana kecepatan penulisan kedalam log file dapat menjadi kritis dalam menentukan keseluruhan performa sistem database. Checkpointing Checkpoint adalah titik dari penyelarasan (synchronization) antara database dan log file. Checkpoint dijadwalkan saat penetapan sebelum interval dan menyertakan operasi berikut: • Menuliskan seluruh record log dalam main memory kedalam penyimpanan sekunder. • Menuliskan blok perubahan dalam buffer database ke penyimpanan sekunder. • Menuliskan record checkpoint kedalam log file. record ini berisikan identifier dari seluruh transaksi aktif pada saat checkpoint. Jika kerusakan terjadi, akan melaksanakan redo seluruh transaksi yang committed sejak check point dan melaksanakan undo seluruh transaksi aktif pada saat gagal (crash) . Pada contoh yang lalu dengan checkpoint pada saat tc, perubahan yang dibuat oleh T2 dan T3 telah dituliskan kedalam penyimpanan sekunder, karena itu dilakukan : • Hanya melaksanakan redo T4 dan T5 • undo transaksi T1 dan T6. Teknik Recovery Jika database mengalami kerusakan seperti : • Jika database mengalami kerusakan secara luas, misalnya kerusakan disk head dan kerusakan database, maka perlu dikembalikan ke back-up/salinan terakhir dari database dan diaplikasikan ulang operasi update dari transaksi yang committed dengan menggunakan log file. • Jika database hanya mengalami ketidak-konsistenan (inconsistent), maka harus melakukan undo perubahan-perubahan yang menyebabkan tidak konsisten. Juga perlu melakukan redo terhadap beberapa transaksi untuk menjamin perubahan yang dilakukan telah disimpan ke penyimpanan sekunder. Tidak memerlukan
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
45
back-up salinan dari database tetapi dapat mengembalikan database ke stata konsisten dengan menggunakan before dan after image yang ada dalam log file. Dari dua contoh kasus diatas, maka terdapat tiga teknik recovery : ¾ Deferred Update ¾ Immediate Update ¾ Shadow Paging Deferred Update Dengan menggunakan protocol recovery deferred update, update tidak dituliskan kedalam database sampai dengan transaksi mencapai titik commit. Jika transaksi gagal sebelum commit, maka update tersebut tidak akan merubah database dan tidak perlu melakukan undo perubahan. Tetapi mungkin perlu melakukan redo update dari transaksi yang committed sebagai akibat tidak mencapai database. Dalam hal ini digunakan log file untuk perlindungan dari kesalahan sistem dengan cara : ¾ Ketika mulai transaksi, tuliskan record transaction start pada log file ¾ ketika operasi penulisan dilaksanakan , tuliskan record log berisikan seluruh data log yang telah dispesifikasikan sebelumnya. Tidak menuliskan update pada buffer database atau database itu sendiri. ¾ Ketika transaksi commit, tuliskan transaction commit pada record log, tulis seluruh record log transaksi ke disk, kemudian selesaikan transaksi. Gunakan record log untuk menjalankan update pada database. ¾ Jika transaksi gagal, abaikan record log transaksi dan jangan melakukan penulisan. Immediate Update Dengan menggunakan protocol recovery immediate update, Update di aplikasikan pada data base ketika dijalankan tanpa harus menunggu titik commit. Perlu melakukan redo update dari transaksi committed jika terjadi kesalahan, menjadi penting untuk mengulang (undo) akibat dari transaksi yang belum committed pada saat terjadi kesalahan. Dalam kasus ini digunakan log file untuk perlindungan terhadap kesalahan sistem dengan cara : ¾ Jika transaksi dimulai, tuliskan record transaction start pada log file. ¾ Ketika operasi penulisan dilaksanakan, tuliskan record berisikan data-data yang dianggap perlu kedalam log file. ¾ Ketika log file sudah ditulis, tuliskan update pada buffer database. ¾ Update terhadap database itu sendiri dilakukan ketika buffer dikirimkan kemudian ke penyimpanan sekunder. ¾ Ketika transaksi commit, tuliskan record transaction commit di log file. Pada dasarnya record log dituliskan sebelum penulisan yang sesuai pada database, dikenal dengan Write-ahead log protocol. Jika tidak terdapat record “transaction commit” dalam log, kemudian transaksi tersebut aktif pada saat terjadi kesalahan daka harus digagalkan. Jika transaksi gagal, log dapat digunakan untuk melakukan undo (melaksanakan in reverse order) dimana telah dituliskan dalam log file. Shadow Paging Mengatur/memelihara dua table selama transaksi berlangsung yaitu : tabel current page dan shadow page. Ketika transaksi dimulai, kedua tabel tersebut sama. tabel shadow page tidak akan diubah sesudah itu dan digunakan untuk mengembalikan database pada saat terjadi kesalahan. Selama transaksi berlangsung tabel current page digunakan untuk mencatat seluruh update terhadap database. Ketika transakti selesai, tabel current page menjadi tabel shadow page.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
46
BAB XII DATA WAREHOUSE Adalah kumpulan dari komponen-komponen perangkat keras dan perangkat lunak yang dapat digunakan untuk mendapatkan analisa yang lebih baik dari data yang berjumlah sangat besar sehingga dapat membuat keputusan yang baik. Dengan kata lain sebagai gudang data. Manfaat Data Warehouse Data Warehouse biasanya digunakan untuk: 1. Memahami trend bisnis dan membuat perkiraan keputusan yang lebih baik. 2. Menganalisa informasi mengenai penjualan harian dan membuat keputusan yang cepat dalam mempengaruhi performance perusahaan. Data Warehouse Customer Example Salah satu pelanggan AS/400, menemukan kesulitan dalam hal informasi penjualan yang dibutuhkan untuk dapat memperluas bisnisnya. Tiap bulan laporan penjualan sederhana tidak tepat waktu atau tidak mendetail sehingga sangat tidak membantu. Untuk membantu membuat keputusan bisnis, perusahaan ini perlu dianalisa latar belakangnya sehingga dapat menemukan titik-titik trends bisnis. Dengan AS/400 data warehouse-nya yang baru, para penjual dari perusahaan ini dapat membentuk strategi penjualan berdasarkan informasi yang diberikan warehouse. Informasi ini termasuk mengenai the success of previous promotions, regional trends, product profitability dan the effect of product packaging. Perusahaan lain seperti departemen, seperti keuangan dan operasi, juga menggunakan warehouse untuk mengidentifikasi dan menganalisa produk yang berhasil menyeberangi daerah, penjualan dan waktu. Data warehouse dapat sebagai kunci pembeda dalam suatu industri-industri yang berbeda. Aplikasi Data Warehouse meliputi: 1. Sales and marketing analysis across all industries. 2. Inventory turn and product tracking in manufacturing. 3. Kategory manajemen, analisa penjualan, dan perbaikan analisa program pemasaran yang efektif. 4. Keuntungan dari jalan raya atau analisa resiko pengemudi dalam hal transportasi. 5. Analisa keuntungan atau resiko penetapan pajak atau mendenda dalam bank. 6. Analisa tuntutan dari deteksi penggelapan dalam asuransi. Operational versus Informational data Operational data adalah data yang digunakan untuk menjalankan bisnis. Data ini mempunyai cirri disimpan, diperoleh dan diupdate oleh system Online Transactional Processing (OLTP). Sebagai contoh, system pemesanan, aplikasi perhitungan atau an order entry application. Operational data biasanya disimpan dalam relational database, tetapi mungkin disimpan dalam legacy hierarchical atau flat formats as well. Karakteristik operational data meliputi: 1. Sering diperbaharui dan transaksi yang bersifat online. 2. Non-historical data (tidak lebih dari tiga sampai dengan enam bulan lamanya). 3. Optimized for transactional processing. 4. Tingginya normalisasi dalam relasional database untuk memudahkan pembaharuan, pemeliharaan dan integritas. Informational data biasanya disimpan dalam format yang membuat analisa lebih mudah. Analysis can be in the form of decision support (queries), report generation, executive
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
47
information systems. Informational data dibuat dari operational data kekayaan yang ada di dalam bisnis anda. Informational data adalah apa yang membentuk sebuah data warehouse. Ciri informational data: 1. Summarized operational data. 2. De-normalized and replicated data. 3. Infrequently updated from the operational data. 4. Optimized for decision support applications. 5. Possibly read-only (no updates allowed). 6. Stored on separate system to lessen impact on operational system. Metadata Informasi mengenai data warehouse dan data yang diisi ke dalam Data warehouse dibagi dua bagian. Yang pertama technical data the warehouse uses, dan yang kedua business data that is of use to the warehouse users. Semua data ini menunjukkan sebagai metadata, data about the data. The technical data berisi penjelasan tentang operational database dan penjelasan dari data warehouse. Dari kedua penjelasan itu, atau skema, operasi pergerakan data dpat diimplementasikan. Data ini membantu administrasi data warehouse menjaga datanya dan mengetahui dari mana semua data berasal. The business data membantu pemakai mencari informasi dalam data warehouse tanpa mengetahui implementasi databasenya. (This information is presented in business terms, instead of the terms used by the programmers when the database was built) The business data memberikan informasi kepada pemakai: 1. Pada saat data dipindahkan ke dalam warehouse (how current it is) 2. Dari mana data berasal. (which operational database). 3. Other information that lets the user know how reliable the data is. Business Intelligence Software and Data Mining Business intelligence software is a fairly new term referring to the tools that are used to analize the data. Software ini terdiri dari: 1. Decision Support System (DSS) tools Dimana diijinkan untuk membangun ad hoc queries and generate reports. 2. Executive information system (EIS). Which combine decision support with extended analysis capabilities and access to outside resources (such as Dow Jones News Services) 3. Data Mining tools. Which allow automation of the analysis of your data to find patterns or rules that you can use to tailor business operations.
PROGRAM STUDI TEKNIK INFORMATIKA STMIK PELITA NUSANTARA MEDAN
48