08 Teknologi Basis Data 1 Pengantar Teknologi Informasi Sumber: • Blog Faisal Akib: http://faisalakib.net/ • Download: http://download.faisalakib.net/ • Artikel Kuliah: http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 1 Modul 8 : Teknologi Basis-Data (1) Sub Pokok bahasan : 8.1 Defenisi dan Terminologi 8.2 Peranan Basis-Data 8.3 Model Data 8.4 Sistem Manajemen Basis Data 8.5 SQL Tujuan Pembelajaran: Setelah mengikuti perkuliahan ini mahasiswa diharapkan mampu membuat abstraksi data sebuah objek, model basis data baik dengan model hirarkis, jaringan, relasional, relasi entitas, dan model berbasis objek. Gambaran Singkat : Pada perkuliahan ini akan dibahas mengenai peranan basis data pada sistem informasi, teknik-teknik pemodelan data, dan berbagai sistem manajemen basis data.. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 2 Manajemen organisasi memerlukan pengambilan keputusan, baik dalam operasional sehari-hari, maupun dalam perencanaan strategis ke masa depan. Proses pengambilan keputusan harus dilandasi oleh data dan informasi yang tepat waktu dan tepat isi agar keputusan yang diambil tepat sasaran. Informasi diperoleh dari pengolahan data, dan pengolahan data dilaksanakan oleh sistem informasi dengan dukungan teknologi informasi. Data adalah bahan baku informasi dan dikumpulkan dalam suatu basis-data (database) agar pengumpulan, penyimpanan, pemeliharaan, pengolahan, dan pengamanan-nya dapat dilaksanakan secara effektif dan effisien. Sebagai contoh suatu institusi akademik harus membangun database akademik, minimal memuat data mahasiswa, data dosen, data matakuliah, data ruangan, jadwal, sehingga dapat diperoleh informasi yang tepat tentang penyelenggaran akademik institusi tersebut. Agar suatu database yang effektif dapat dibangun, diperlukan pengetahuan dasar tentang database. 8.1 Definisi dan Terminologi Data adalah representasi objek yang menjadi perhatian, misalnya bila mahasiswa menjadi perhatian maka dikumpulkan data yang dapat mewakili objek mahasiswa, misalnya nama, tanggal lahir, jenis kelamin, agama, alamat, dan sebagainya. Apabila kumpulan representasi data ini direkam dan disimpan maka diperoleh file data. Informasi tentang mahasiswa dapat diperoleh dengan cara mengolah kumpulan data mahasiswa tersebut, misalnya dapat diperoleh informasi tentang komposisi umur mahasiswa, tentang komposisi agama, jenis kelamin dan sebagainya. Adakalanya diperlukan lebih dari satu file yang saling berkaitan untuk merepresentasikan suatu objek, kumpulan file yang diatur dan saling berkaitan (memiliki relasi) disebut sebagai “database” (atau pangkalan data). Informasi dapat diperoleh dengan cepat dan tepat apabila basisdata telah tersusun rapi dan sempurna. Database harus merepresentasi-kan objek secara sempurna, agar bisa memberikan informasi yang tepat, misalnya database nasabah bank harus memuat data nasabah secara lengkap dan mutakhir, kalau tidak maka informasi tentang keadaan keuangan nasabah akan kacau. Database juga harus memiliki kemampuan untuk mengamankan data yang dikandungnya sehingga tidak dapat dibaca, digunakan, diubah, dan dirusak oleh orang yang tidak berhak. Database (basisdata) dapat pula diumpamakan sebagai suatu lemari arsip, dimana dalam pengelolaannya memerlukan aturan-aturan tertentu agar suatu arsip mudah ditemukan, misalnya dibundel menurut kelompok dan jenis arsipnya, kemudian diberi nomer yang mengikuti suatu sistem penomoran arsip, lalu bundel-bundel arsip ini ditempatkan pada lemari mengikuti urutan tertentu. Pada sistem basisdata digital, setiap bundel adalah file data, dimana didalamnya direkam record-data yang sejenis. Antara satu file dengan file lainnya terdapat relasi, dan bila ada file yang tidak memiliki relasi dengan file lain maka sebenarnya file tersebut bukan anggota dari basisdata. Data adalah representasi dari fakta dunia nyata yang mewakili suatu objek yang sedang ditinjau (manusia, barang, peristiwa, hewan, konsep, keadaan, dsb), dan direkam dalam bentuk huruf, kata, angka, simbol, gambar, bunyi, atau kombinasinya. Base adalah basis yang dapat diartikan sebagai gudang, markas, tempat berkumpul dari suatu objek atau representasi objek. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 3 Definisi : Basisdata dapat didefinisikan dalam berbagai cara: Kumpulan file data yang saling berhubungan (berelasi) dan diorganisasi sedemikian rupa agar dapat diakses dengan mudah dan cepat. Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan (Fathansyah, 1999). Kumpulan file-file yang saling berelasi, relasi tersebut ditunjukkan dengan kunci dari tiap file yang ada untuk digunakan dalam satu lingkup perusahaan, instansi (Kristanto, 1994). Kumpulan file data yang terorganisasi, terintegrasi, dan bisa dipakai bersama (C.J Date, 1981) Kumpulan rekaman data berbagai tipe yang memiliki relasi satu sama lain (Martin, 1977) Dalam semua definisi diatas ditonjolkan adanya relasi / hubungan, tanpa pengulangan, pengelompokan, peng-organisasian, effisiensi, dan effektivitas. Terminologi yang digunakan dalam Database cukup bervariasi sehingga dianggap perlu untuk menggunakan istilah yang sekiranya dapat dipakai bersama dengan suatu pengertian yang sama. Entity : Entitas, adalah objek yang bisa mewakili orang, tempat, kejadian, atau konsep yang informasi-nya perlu direkam. Pada bidang administrasi akademik, entitas adalah mahasiswa, matakuliah, dosen, ruangan, daftar pustaka, pembayaran, nilai ujian, dsb. Attribute : Atribut, suatu nama atau sebutan untuk mewakili suatu entitas. Misalnya mahasiswa memiliki atribut seperti NoInduk, Nama, Alamat, Tgl-Lahir, Tempat Lahir, Agama, Status, Jenis Kelamin, dsb. Data Value : Nilai data, yaitu nilai yang dimiliki atau diberikan kepada suatu atribut, misalnya atribut Nama diberi nilai “Ahmad”, Tgl-Lahir diberi nilai “27-Maret-1978”, dsb. Data Field : Field data, adalah elemen data yang memiliki nilai. Pada hakekatnya Field data sama fungsinya dengan Atribut data. Nama, Alamat, Jenis Kelamin, dsb, apabila nilainya direkam ke dalam suatu file maka disebut Field-data. Record / Tuple : Record atau Rekaman data, merupakan kumpulan elemen data, atau kumpulan beberapa nilai Atribut, atau kumpulan Field-data yang mewakili satu Entitas secara lengkap. Misalnya: Entitas pegawai memiliki record: NIP, Nama, Alamat, Pangkat, Jabatan, dsb. File : File data, adalah kumpulan Record data yang sejenis yang direkam ke dalam satu media, memiliki Atribut-atribut yang sama, namun nilai data-nya berbeda. Database : Basis-data, kumpulan File data yang dipadu dan saling berkaitan untuk membentuk suatu fondasi pengelolaan informasi pada satu organisasi. Database Management System (DBMS) : Sistem Manajemen Basisdata, suatu sistem yang terdiri atas Basis-data dan Perangkat Lunak (Software / program) yang bertujuan untuk effektivitas dan effisiensi dalam pengelolaan basisdata. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 4 Database Pegawai / Dosen Entity Pegawai Entity Jabatan Relasi Entity Pendidikan Akses Data Entry Retrieve Entity Mahasiswa Program Aplikasi Entity MataKuliah Relasi Query Language Software DBMS Database Mahasiswa Gambar 8.1 – Relasi antara Basis data 8.2 Peranan Basis-Data Basisdata memiliki peranan penting dalam suatu organisasi, dan dimanfaatkan untuk sejumlah tujuan yang mendukung tujuan utama organisasi. Peranan utama basisdata antara lain sebagai berikut: Ketersediaan (availability) : basisdata harus diorganisasi sedemikian rupa sehingga data selalu tersedia ketika diperlukan, walaupun secara fisik penyimpanan file-file datanya tidak harus berada pada satu lokasi, tetapi dengan teknologi jaringan komputer file-file data ini secara logis tersedia bagi penggunanya. Kecepatan dan kemudahan (speed) : basisdata harus bisa menjamin bahwa data dapat diakses dengan mudah dan cepat ketika diperlukan. Kelengkapan (completeness) : data yang tersimpan dalam basisdata harus lengkap, dengan kata lain dapat melayani semua kebutuhan penggunanya, walaupun kata lengkap adalah relatif terhadap kebutuhan setiap orang, namun basisdata menjamin kemudahan dalam menambah koleksi data, menjamin kemudahan dalam memodifikasi struktur data seperti penambahan field-field data. Keakuratan (accuracy) : data dalam file-file database diorganisasi sedemikian rupa sehingga dapat menekan kesalahan-kesalahan pada saat pemasukan (dataentry) dan pada penyimpanan (datastore). Keamanan (security) : sistem basisdata yang baik pasti menyediakan fasilitas pengamanan data sehingga data tidak dapat diakses, dimodifikasi, diubah, atau dihapus oleh orang yang tidak diberi hak. Sistem basisdata harus bisa menentukan siapa yang boleh meng-akses data siapa yang tidak boleh, dengan demikian data dapat diamankan. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 5 Pemakaian bersama (data sharing) : basisdata umum-nya dirancang agar dapat digunakan oleh berbagai unit kerja, dan tidak terbatas pada satu pemakai, pada satu lokasi, atau satu aplikasi saja. Effisiensi penyimpanan (space/storage efficiency) : organisasi basisdata dibuat sedemikian rupa sehingga dapat menghindari duplikasi data (redundancy), karena duplikasi data memperbesar ruang penyimpanan. Sistem pengkodean dan relasi data yang diterapkan pada basisdata dapat menghemat ruang penyimpanan Secara teknis bidang-bidang fungsional organisasi yang telah umum menerapkan sistem basis data demi efisiensi, keamanan, keakuratan, dan kecepatan serta kemudahan dalam pengelolaan data, antara lain adalah: Kepegawaian (personalia) Pergudangan (inventaris) Akuntansi (keuangan) Reservasi (pemesanan tiket, kamar hotel, dsb) Layanan pelanggan (customer services) Penjualan (point of sale di supermarket) dan sebagainya Berbagai organisasi telah menerapkan basisdata dalam sistem informasi-nya, dan berhasil meningkatkan kinerja organisasi, antara lain: Perbankan Asuransi Pendidikan / sekolah Swalayan Rumah sakit Biro perjalanan Industri / manufaktur Telekomunikasi dan lain lain 8.3 Model Data Model Data pada hakekatnya adalah kumpulan perangkat konseptual untuk menggambarkan data, relasi data, makna (semantik) data, dan batasan data. Ada sejumlah cara dalam merepresentasikan Model Data untuk keperluan perancangan basis data, yaitu dikelompokkan sebagai berikut: o o o o o Model Hirarkis (Hierarchical Model) Model Jaringan (Network Model) Model Relasional (Relational Model) Model Relasi Entitas (Entity-Relationship Model) Model Berbasis Objek (Object Oriented Model) 8.3.1 Model Data Hirarkis Model data hirarkis adalah model data paling tua yang pernah diterapkan dalam suatu DBMS. Model ini mengikuti pola hirarki pada suatu organisasi atau pada suatu keluarga, dimana terdapat rekaman data yang berfungsi sebagai “bapak” (parent-record) ada yang berfungsi sebagai “anak” (child-record), Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 6 atau sebagai “pimpinan’ dan “anak-buah”. Dalam model ini seorang “bapak” bisa memiliki lebih dari satu “anak” tetapi seorang “anak” hanya boleh memiliki satu “bapak”. Sebagai contoh basis-data yang menggambarkan rencana studi mahasiswa dimana seorang mahasiswa boleh mengambil beberapa matakuliah. Nim Nama-Mhs KodeMkuliah Alamat_Mhs Nama_Mkuliah tgl_Lahir sks Mahasiswa semester Mata Kuliah Gambar 8.2 – Model Data Hirarkis Pada model diatas tidak direpresentasikan bahwa satu matakuliah diambil oleh beberapa mahasiswa, karena berarti menyalahi aturan dimana satu “anak” (kuliah) memiliki banyak “bapak” (mahasiswa). Model diatas akan menyebabkan timbulnya “redudansi” data, karena banyak kemungkinan bahwa matakuliah yang sama diambil oleh beberapa mahasiswa, sehingga record-matakuliah tersebut direkam berkali-kali dibawah record-mahasiswa yang mengambilnya. Disamping itu apabila ada matakuliah yang tidak diprogram-kan oleh mahasiswa maka ada kemungkinan record-nya tidak ada dalam database karena tidak memiliki parent. Contoh model hirarkis yang menunjukkan hubungan Dosen-MataKuliah-Mahasiswa dapat pula digambarkan dalam bentuk diagram sebagai berikut. Dosen Widya Algoritma Adi Ida Lidya C/C++ Dian Lola Ekonomi Dian Lola Akuntansi Ida Adi Gambar 8.3 – Diagram Hirarkis Dosen-Matakuliah-Mahasiswa Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 7 Perhatikan dalam model hirarki diatas, data mahasiswa yang sama terpaksa direkam berulang ketika mahasiswa tersebut memprogramkan lebih dari satu matakuliah. Model hirarkis ini pernah di-implementasikan oleh IBM pada sebuah DBMS yang diberi nama IMS (Information Management System) namun kemudian di-kalahkan oleh implementasi model yang lebih mutakhir seperti model Data Relasional seperti Rbase, dsb. 8.3.2 Model Data Jaringan Model data jaringan adalah pengembangan dari model data hirarkis, melihat kekurangan dari model hirarkis tersebut. Pada model jaringan diperkenankan bahwa sebuah child-record bisa memiliki lebih dari satu parent-record. Pada implementasi-nya berarti antara parent-record dan child-record diperlukan penghubung (link atau pointer) yang bisa satu arah atau dua-arah. Nim Kode_ Mkuliah nama_mhs alamat_mhs Nama_Mkuliah sks tgl_lahir semester Gambar 8.4 – Model Data Jaringan Dengan model jaringan ini maka informasi dimana seorang mahasiswa dapat mengambil beberapa matakuliah (pointer dari record mahasiswa tsb ke beberapa record-kuliah) dan juga informasi bahwa satu matakuliah dapat di-program-kan oleh banyak mahasiswa (pointer dari record-kuliah ke beberapa record-mahasiswa) keduanya dapat di-representasikan. Model Jaringan dari Dosen-Matakuliah-Mahasiswa dapat digambarkan sebagai berikut. Gambar 8.5 – Diagram Model Jaringan Dosen-MataKuliah-Mahasiswa Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 8 Persoalan yang timbul adalah “terjadinya hutan pointer” akibat relasi antar record yang rumit sehingga penelusuran data menjadi sangat sulit. Ketika model relasional menjadi lebih populer maka model inipun ditinggalkan orang. 8.3.3 Model Data Relasional Model data relasional adalah model data yang diciptakan berdasarkan teori-relasional seperti relational algebra, dan relational calculus. Salah seorang pencetus awal dari basis data relasional adalah E.F.Codd yang juga telah menciptakan serangkaian operasi matematika relasional terhadap model data relasional. Pada prinsipnya model data relasional dapat di-representasikan dalam bentuk table (tabel) data, dimana: • • • • • satu tabel mewakili satu “domain” data atau entity, bila direkam merupakan satu file yang hanya memiliki satu tipe record saja, setiap record adalah baris setiap record terdiri atas beberapa field (atribut) atau tuple, atau kolom jumlah tuple / field pada setiap record sama setiap record memiliki atribut kunci utama (primary key) yang unik dan dapat dipakai untuk mengenali satu record record dapat diurutkan menurut kunci utama, Contoh: domain mahasiswa dapat diwakili oleh satu tabel mahasiswa dengan kunci utama adalah NIM (Nomor Induk Mahasiswa), dan domain matakuliah dapat diwakili oleh satu tabel kuliah dengan kunci utama kode-mkuliah. tabel mahasiswa Nim 011234 011345 011456 Nama_mhs Ahmad Bobby Charles Alamat_mhs Jl. Melati 50 Jl. Mawar 103 Jl. Mangga 145 Tgl_lahir 21-3-1980 13-5-1980 17-8-1980 tabel kuliah Kode_mkuliah 315KP2 317KP2 319MP2 Nama_Mkuliah Pemrograman Visual Pemrograman Web Analisis Numerik sks 2 2 2 Semester 5 5 5 Tabel 8.1 – Tabel Mahasiswa dan Matakuliah Hubungan antara kedua domain ini dinyatakan dalam bentuk relasi, ada tiga kemungkinan relasi antar dua domain yaitu: • relasi satu-satu (one-to-one relation) : bahwa satu mahasiswa hanya boleh mengambil satu matakuliah, dan satu matakuliah hanya boleh diambil oleh satu mahasiswa, relasi disingkat dengan simbol 1-to-1. Dalam implementasi dua file yang memiliki relasi 1-to1 dapat digabung menjadi satu file. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 • • Halaman 9 relasi satu-banyak (one-to-many relation) : bahwa satu mahasiswa boleh ambil banyak matakuliah tetapi satu matakuliah hanya boleh diambil oleh satu mahasiswa, relasi disingkat dengan simbol 1-to-M atau M-to-1. Pada relasi 1-to-M atau M-to-1, kunci record dari file pada sisi-1 harus ditambahkan sebagai kunci-tamu pada file sisi-M relasi banyak-banyak (many-to-many relation) : bahwa satu mahasiswa boleh ambil banyak matakuliah, dan satu matakuliah boleh diambil oleh banyak mahasiswa, relasi disingkat dengan simbol M-to-M. Pada relasi M-to-M harus diciptakan sebuah file ‘relasi’ yang berisi minimal dua field kunci record dari masing-masing file yang berelasi. Contoh relasi antara domain mahasiswa dan matakuliah secara logis hanya bisa diterima pada jenis relasi banyak-banyak (M-to-M). Perwujudan dari relasi banyak-banyak ini diwakili oleh tabel relasi yang minimal memuat kunci utama masing-masing domain yang berelasi. Nim 011234 011234 011345 011345 011345 011456 011456 Kode_kuliah 315KP2 319MP2 315KP2 317KP2 319MP2 317KP2 319MP2 Nilai A B C A C D B Tabel 8.2 – Tabel Relasi (M-to-M) antara Mahasiswa dan MataKuliah 8.3.4 Model Relasi-Entitas Model Relasi-Entitas atau (Entity Relationship Model) pada hakekatnya perwujudan dari model relasional dalam bentuk diagram, yaitu E-R Diagram. Domain data disebut juga sebagai himpunan entitas, diwakili oleh diagram kotak. Field-data atau atribut diwakili oleh diagram lingkaran atau ellips. Hubungan atau relasi antar domain diwakili oleh jajaran-genjang. Domain data Atribut / Field data Relasi Contoh relasi antara domain mahasiswa dan domain matakuliah diwujudkan dalam diagram E-R sebagai berikut: Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Nim Halaman 10 Mahasiswa Alamat_ Mhs Nim Nama_ Mhs M Tgl_lahir Kode_ Mkuliah Ambil M Nama_ Mkuliah Matakuliah Nilai Semester SKS Kode_ Mkuliah Gambar 8.6 – Diagram E-R dari Mahasiswa dan Matakuliah 8.3.5 Model Data Berbasis Objek Model data berbasis objek dikembangkan searah dengan perkembangan pemrograman berbasis objek. Salah satu karakteristik dari sistem berbasis objek adalah encapsulation yaitu suatu objek terpisah dari objek lain sehingga setiap objek seakan-akan berada dalam kapsulnya masing-masing. Pada setiap kapsul terdapat komponen data (attribute) dikemas bersama dengan komponen aksesnya (methods). Sebagai contoh, berikut ini disajikan data pegawai dalam format berbasis objek. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 PEGAWAI Data : NIP, Nama, Alamat, TgLahir, Jkelamin, Status, Pendidikan Halaman 11 Relasi antara File Pegawai dan File Pekerjaan Metoda : Tambah Data Edit Data Hapus Data Relasi antara File Pekerjaan dan File Unit Kerja PEKERJAAN Data : NIP, Kode_unit, Gol, Jabatan, TgJabatan. Metoda : Tambah Data Hapus Data UNIT KERJA Data : Kode_unit, Nama_unit, Lokasi Metoda: Tambah Data Edit Data Gambar 8.7 – Model Objek dari Data Pegawai 8.4 Sistem Manajemen Basis-Data Sistem Manajemen Basis-Data (Data Base Management System / DBMS) adalah perangkat lunak sistem yang memungkinkan para pemakai membuat, memelihara, mengontrol, dan meng-akses basis data dengan cara praktis dan efisien. DBMS dapat digunakan untuk meng-akomodasikan berbagai macam pemakai yang memiliki kebutuhan akses yang berbeda-beda. DBMS pada umumnya menyediakan fasilitas atau fitur-fitur yang memungkinkan data dapat diakses dengan mudah, aman, dan cepat. Beberapa fitur yang secara umum tersedia adalah: Keamanan : DBMS menyediakan sistem pengamanan data sehingga tidak mudah diakses oleh orang yang tidak memiliki hak akses. Independensi : DBMS menjamin independensi antara data dan program, data tidak bergantung pada program yang meng-akses-nya, karena struktur data-nya dirancang berdasarkan kebutuhan informasi, bukan berdasarkan struktur program. Sebaliknya program juga tidak bergantung pada data, sehingga walaupun struktur data diubah, program tidak perlu berubah. Konkruensi / data sharing : data dapat diakses secara bersamaan oleh beberapa pengguna karena manajemen data dilaksanakan oleh DBMS. Integritas : DBMS mengelola file-file data serta relasi-nya dengan tujuan agar data selalu dalam keadaan valid dan konsisten Pemulihan : DBMS menyediakan fasilitas untuk memulihkan kembali file-file data ke keadaan semula sebelum terjadi-nya kesalahan (error) atau gangguan baik kesalahan perangkat keras maupun kegagalan perangkat lunak. Kamus / katalog sistem : DBMS menyediakan fasilitas kamus data atau katalog sistem yang menjelaskan deskripsi dari field-field data yang terkandung dalam basisdata. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 12 Perangkat Produktivitas : DBMS menyediakan sejumlah perangkat produktivitas sehingga memudahkan para pengguna untuk menarik manfaat dari database, misalnya report generator (pembangkit laporan) dan query generator (pembangkit query / pencarian informasi). Sistem Manajemen Basis-Data (DBMS) memiliki berbagai keunggulan dibandingkan dengan pengelolaan data tanpa DBMS, walaupun tidak terlepas dari beberapa kelemahan. Keunggulan DBMS antara lain sbb: Mengurangi duplikasi data atau data redundancy Menjaga konsistensi dan integritas data Meningkatkan keamanan data Meningkatkan effisiensi dan effektivitas penggunaan data Meningkatkan produktivitas para pengguna data Memudahkan pengguna dalam menggali informasi dari kumpulan data Meningkatkan pemeliharaan data melalui independensi data Meningkatkan pemakaian bersama dari data Meningkatkan layanan backup dan recovery data Mengurangi konflik antar pengguna data Kelemahan DBMS antara lain sbb: Memerlukan suatu skill tertentu untuk bisa melakukan administrasi dan manajemen database agar dapat diperoleh struktur dan relasi data yang optimal Memerlukan kapasitas penyimpanan baik eksternal (disk) maupun internal (memory) agar DBMS dapat bekerja cepat dan efisien. Harga DBMS yang handal biasanya sangat mahal Kebutuhan akan sumber daya (resources) biasanya cukup tinggi Konversi dari sistem lama ke sistem DBMS terkadang sangat mahal, disamping biaya pengadaan perangkat keras dan perangkat lunak, diperlukan pula biaya pelatihan. Apabila DBMS gagal menjalankan misinya maka tingkat kegagalan menjadi lebih tinggi karena banyak pengguna yang bergantung pada sistem ini. Berikut ini disajikan tabel beberapa DBMS yang terkenal. DBMS Access DB2 Informix Ingress mySQL Oracle Postgres SQL Sybase Visual dBase Visual FoxPro Perusahaan Microsoft Corporation IBM IBM Computer Associate The MySQL Company Oracle Corporation Postgres Sybase Inc. Borland FoxPro Corporation Tabel 8.3 – Tabel berbagai DBMS DBMS untuk model data berbasis objek biasanya dinamakan sebagai Object Oriented Data Base Management System (OODBMS). Beberapa OODBMS yang terkenal adalah sebagai berikut: Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 13 OODBMS Gemstone Matisse Versant Jeevan Vision Objectivity ObjectStone Poet Perusahaan Gemstone System ADB Inc. Versant W3 Apps. Insyte Objectivity Inc. Object Design Inc. Poet Software. Tabel 8.4 – Tabel berbagai OODBMS Perlu ditambahkan disini bahwa beberapa DBMS berbasis objek sebenarnya tetap menggunakan file data relasional biasa, dengan kata lain, programnya berbasis objek tetapi datanya masih model relasional biasa. Software seperti ini biasanya disebut sebagai Object Oriented Relational DataBase Management System (OORDBMS), misalnya Visual dBase. Arsitektur DBMS Salah satu tujuan dari DBMS adalah untuk menyediakan sarana antar muka (interface) dalam mengakses data secara efisien tanpa harus melihat kerumitan atau detail tentang cara data direkam dan dipelihara. DBMS memiliki arsitektur untuk melakukan abstraksi dari data sehingga dapat diperoleh independensi data-program. Pada tahun 1975, badan standarisasi nasional Amerika ANSI-SPARC (American National Standards Institute – Standards Planning and Requirements Committee) menetapkan tiga level abstraksi dalam database, yaitu: 1. Level Eksternal (external level) atau Level Pandangan (view level) 2. Level Konseptual (conceptual level) 3. Level Internal (internal level) atau Level Fisik (physical level) Level Eksternal adalah level yang berhubungan langsung dengan pengguna database. Pada level ini pengguna (user) hanya bisa melihat struktur data sesuai dengan keperluannya sehingga setiap user bisa memiliki pandangan (view) yang berbeda dari user lainnya. Pada level ini pula dimungkinkan pandangan user berbeda dengan representasi fisik dari data, misalkan untuk data hari secara fisik data direkam dalam bentuk kode (1, 2, 3, dst) sedang user melihat data dalam bentuk teks nama hari (Ahad, Senin, Selasa, ...). Data yang dilihat oleh user seakan-akan berasal dari satu file, secara fisik mungkin diambil dari beberapa file yang berelasi. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 User-1 View-1 Halaman 14 User-2 View-2 User-3 View-3 Eksternal Konseptual Internal File-file Basisdata Gambar 8.8 - Arsitektur Sistem Manajemen Basisdata Level Konseptual adalah level dari para administrator database, pada level ini didefinisikan hubungan antar data secara logik, sehingga diperlukan struktur data secara lengkap. Para administrator database memahami bagaimana satu view dijabarkan dari beberapa file data, demikian pula pada saat perancangan database mereka dapat saja membagi data menjadi beberapa file agar dapat diakses dan disimpan secara efisien. Level Internal adalah level dimana data disimpan secara fisik dalam bentuk kode, teks, angka, bit. Pada level ini didefinisikan allokasi ruang penyimpanan data, deskripsi data dalam penyimpanan, kompressi data (agar lebih hemat), dan enkripsi data (agar lebih aman). Agar independensi data dapat dicapai maka disediakan pemetaan antar lapisan (level), yatiu pemetaan eksternal-konseptual dan pemetaan konseptual-internal. Pada pemetaan eksternal-konseptual, DBMS dapat memetakan field-field data dari user-view ke dalam struktur data yang sesungguhnya. Pada pemetaan konseptual-internal, DBMS dapat menemukan rekaman fisik dari data yang didefinisikan pada struktur logik. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 15 user view-1 user view-2 NoMhs, Nama, Alamat, Jkel NoMhs, Nama, Agama, Hobby Level Eksternal NoMhs, Nama, Jkel, Agama, Hobby, Alamat Level Konseptual Level Internal Struct Mahasiswa { char NoMhs[9]; char Nama[25]; int Jkel; int Agama; char Hobby[15]; char Alamat[30]; struct Mahasiswa *next; }; index NoMhs; Gambar 8.9 – Tiga level abstraksi dari data mahasiswa Bahasa DBMS Implementasi bahasa DBMS bervariasi sesuai dengan variasi perusahaan yang merancangnya, namun pada prinsipnya bahasa ini bisa dikategorikan ke dalam tiga komponen bahasa, yaitu: 1. Data Definition/Decription Language (DDL) 2. Data Manipulation Language (DML) 3. Device Control Media Language (DCML) DDL adalah komponen bahasa DBMS yang digunakan untuk mendefinisikan struktur data antara lain perintah untuk membuat tabel baru (CREATE) dimana terdefinisi komponen/field data dengan tipe dan panjangnya, mengubah index (INDEX, REINDEX) agar setiap rekord dalam satu file data dapat diakses melalui indeks-nya, mengubah struktur (MODIFY STRUCT) dari file data, dan sebagainya. Komponen bahasa ini banyak digunakan oleh para administrator basisdata pada saat merencanakan atau membangun file-file basisdata. DML adalah komponen bahasa DBMS yang digunakan untuk memanipulasi data, komponen ini diperlukan oleh para pengguna untuk memanipulasi data, antara lain perintah-perintah untuk melakukan hal-hal berikut ini: mengambil data dari basisdata (LIST, DISPLAY) menambah data kedalam basisdata (INSERT, APPEND) meremajakan data yang ada dalam basisdata (UPDATE) menghapus data yang tidak diperlukan (DELETE) meng-urutkan data (SORT) menghitung frekuensi data (COUNT) mencari data (SEEK, FIND) Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 16 DML dapat dibedakan atas dua macam, yaitu DML Prosedural dan DML Non-Prosedural. Pada DML Prosedural ketika data akan dimanipulasi maka perintah harus disertai dengan perintah-perintah bagaimana data diakses dari file database. Perintah DML Prosedural biasanya termuat dalam bahasa program tingkat tinggi (high level programming language) seperti COBOL, C, C++ dan sebagainya. Pada DML non-Prosedural data dapat dimanipulasi langsung tanpa harus memerintahkan bagaimana data dibaca dari file. Perintah DML non-Prosedural biasanya digunakan dalam bahasa-bahasa DBMS seperti pada dBase, Access, Paradox, FoxPro, SQL, dan sebagainya. DCML adalah komponen bahasa DBMS yang digunakan untuk mengatur perekaman atau penyimpanan data secara fisik. Komponen bahasa DCML digunakan oleh operator-operator sistem basisdata didalam mengatur file-file data secara fisik. Perintah-perintah yang termuat dalam komponen ini, antara lain perintah perintah: merekam (Write Record, Create Table), menghapus (Drop, Delete Table). 8.5 SQL SQL (Structured Query Language) adalah salah satu bahasa DBMS yang meng-adopsi model data relasional. SQL muncul dalam berbagai variasi seperti Microsoft SQL, MySQL, dan versi SQL lainnya. Pengetahuan dasar tentang SQL diperlukan karena bahasa ini menjadi salah satu bahasa populer dalam akses data di dunia Internet. SQL telah distandarisasi oleh ISO (International Standards Organization) dan ANSI (American National Standard Institute) sejak tahun 1986 (SQL86) dan diperbaharui ketika diperlukan adanya modifikasi baru (misalnya pada SQL99). Sesungguhnya SQL tidak terbatas pada penyajian data (query) tetapi juga mencakup pembuatan tabel data baru (Create Table), menghapus tabel data (Drop Table), menambahkan data kedalam tabel (Insert), menghapus data dari tabel (Delete/Drop record). Beberapa perintah dasar SQL diperlihatkan pada tabel berikut ini. Perintah SELECT INSERT UPDATE DELETE CREATE TABLE DROP TABLE ALTER TABLE GRANT REVOKE Manfaat membaca data dari database menambahkan data kedalam database meremajakan / mengganti data menghapus rekord data membuat tabel data baru menghapus tabel data merubah struktur tabel/file memberi hak akses pada user membatalkan hak akses dari user Tabel 8.5 – Daftar perintah SQL Perintah SELECT Perintah SELECT digunakan untuk membaca data dari database, perintah ini mempunyai bentuk umum sebagai berikut: SELECT field-1 [, field-2, field-3, ...] FROM tabel-1 [, tabel-2, tabel-3, ...] WHERE syarat/predikat [ORDER BY field ] Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 17 Berikut ini diberikan sebuah contoh pemakaian perintah SELECT untuk membaca data matakuliah yang diajarkan oleh dosen tertentu. SELECT k.kodeMK, k..namaMK, d.namaDosen FROM kuliah k, dosen d WHERE k.kodeDos = d.kodeDOS ORDER BY k.kodeMK Perintah diatas membaca data dari dua file data, yaitu file matakuliah (kuliah yang disingkat dengan huruf k) dan file dosen (yang disingkat dengan huruf d) dengan menampilkan daftar yang terdiri atas kolom-kolom kodeMK, namaMK, namaDosen terurut menurut kodeMK. Perintah INSERT Perintah INSERT digunakan untuk menyisipkan atau menambah satu rekord data kedalam satu tabel/file data. Bentuknya sebagai berikut: INSERT INTO tabel-1 [ (field-1, field-2, ...] VALUES (v1, v2, ...) Berikut ini adalah contoh instruksi untuk menyisipkan sebuah rekord data mahasiswa kedalam tabel mahasiswa. INSERT INTO mahasiswa (NoMhs, NamaMhs, Jkel, Alamat) VALUES (‘02010345’, ‘Abdurahman Wahid’, P, ‘Jl.Disket No.45 Makassar’) Perintah UPDATE Perintah UPDATE digunakan untuk merubah isi rekord data dari suatu tabel/file database. Bentuknya sebagai berikut: UPDATE tabel SET perubahan [ WHERE syarat/predikat ] Apabila hanya data tertentu saja yang akan diubah/diremajakan maka klaus WHERE perlu ditulis, tanpa WHERE maka perubahan berlaku untuk semua rekord dalam tabel tersebut. Contoh: UPDATE kuliah SET sks=2 WHERE kodeMK = ‘3SI423’ Perintah ini merubah sks matakuliah berkode 3SI423 menjadi 2 pada file kuliah. UPDATE dosen SET namaDos = ‘Prof. ‘ + namaDos WHERE kodeDOS = ‘132234122’ Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 18 Perintah ini menambahkan gelar Prof pada seorang dosen dengan kode 132234122. Perintah DELETE Perintah DELETE digunakan untuk menghapus satu rekord dari satu file/tabel database. Bentuknya sebagai berikut: DELETE FROM tabel [WHERE syarat/predikat] Klaus WHERE digunakan apabila hanya rekord tertentu yang akan dihapus, apabila klaus WHERE tidak ditulis maka semua rekord akan terhapus (hati-hati memakainya). Contoh: DELETE FROM kuliah WHERE kodeMK = ‘2TI123’ Perintah ini menghapus rekord matakuliah berkode 2TI123. Perintah CREATE TABLE Perintah CREATE TABLE digunakan untuk menciptakan tabel baru (DDL) dilengkapi dengan definisi struktur datanya. Bentuk umumnya sbb: CREATE TABLE tabel (field-1 tipe-1, field-2 tipe-2, ...) Sebagai contoh andaikan akan dibuat tabel mahasiswa dengan struktur sebagai berikut: KodeMHS char, dengan 9 digit NamaMHS char, sepanjang 25 karakter Jkel char, kode 1 huruf Alamat char, sepanjang 30 karakter TgLahir date maka perintahnya adalah sbb: CREATE TABLE mahasiswa (KodeMHS char(9), NamaMHS char(25), Jkel char(1), Alamat char(30), Tglahir date) Primary key KodeMHS. Perintah DROP TABLE Perintah ini digunakan untuk menghapus file/tabel dari database, harus digunakan secara hati-hati, walaupun DBMS biasanya memiliki proteksi tertentu sehingga penghapusan data bisa dibatalkan bila diperlukan. Bentuknya sbb: DROP TABLE tabel Sebagai contoh file mahasiswa dapat dihapus dengan perintah: DROP TABLE mahasiswa. Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 19 Perintah ALTER TABLE Perintah ini digunakan untuk mengubah struktur file data, baik dengan menambah field data maupun menghapus field data tertentu. Bentuknya sbb: ALTER TABLE tabel ADD field-1, tipe-1 [field-2 tipe-2, ... ] untuk menambahkan field baru kedalam tabel data. ALTER TABLE tabel DROP field untuk menghapus field tertentu. Contoh pemakaian: a. menambahkan field agama dan status pada file mahasiswa ALTER TABLE mahasiswa ADD agama int, status char(1) b. menghapus field gelar dari file dosen ALTER TABLE dosen DROP gelar. Perintah GRANT Perintah GRANT digunakan untuk memberi hak akses tertentu pada user, bentuk umumnya adalah sbb: GRANT akses-1 [ ,akses-2, ...] ON tabel TO user-1 [, user-2, ...] Contoh pemakaian sebagai berikut: GRANT INSERT, DELETE, UPDATE ON kuliah TO Judy, John Pengguna dengan login-name Judy dan John memperoleh hak untuk melakukan operasi INSERT, DELETE, dan UPDATE pada file/tabel kuliah. Perintah REVOKE Perintah REVOKE digunakan untuk membatalkan hak akses dari user, bentuk umumnya sebagai berikut: REVOKE akses-1 [, akses-2, ...] ON tabel FROM user-1 [, user-2, ...] Contoh pemakaian sebagai berikut: Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/ 08 Teknologi Basis Data 1 Halaman 20 REVOKE INSERT, DELETE ON kuliah FROM John Perintah ini membatalkan hak dari John untuk melakukan INSERT dan DELETE pada file kuliah. Rangkuman Data base atau basis data merupakan sekumpulan file yang saling berelasi satu sama lain. Dengan adanya basis data, berbagai keperluan pengolahan data dapat dilakukan secara efisien dan akurat. Untuk mengaplikasikan sebuah basis data yang tepat, maka sebelum dibangun sebuah basis data dimodelkan terlebih dahulu sehingga mudah untuk merancang basis data yang normal. Latihan 1. Jelaskan arti masing-masing istilah berikut! a. Entity b. Attribute c. Data value d. Data field e. Record/tuple f. File g. Database h. Database management system 2. Apa peranan utama sistem basis data pada sebuah organisasi? 3. Sebutkan berbagai macam teknik untuk memodelkan objek! Sumber: http://faisalakib.net/ -- http://download.faisalakib.net/ -- http://teknik-informatika.com/