2015 Sistem Basis Data Ika Menarianti. M.Kom Mata kuliah ini membahas tentang konsep basis data, menganalisis dan menggambar model data, melakukan normalisasi data, melakukan uji Lossless Join Decompotition, memahami cara kerja konsep database relasional, mentransformasikannya ke dalam SQL dan mengimplementasikannya ke dalam bahasa pemrograman tingkat tiga. Pendidikan Teknologi Informasi FPMIPATI Universitas PGRI Semarang - BAB I SISTEM BASIS DATA 1.1 Pengertian Sistem Basis Data 1.1.1 Pengertian Sistem Sistem adalah jaringan kerja dari prosedur-prosedur / komponen komponen yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan guna menyelesaikan atau mencapai tujuan tertentu. Prosedur adalah urut-urutan proses atau operasi tulis menulis dan biasanya melibatkan beberapa orang di dalam satu atau lebih departemen yang diterapkan untuk menjamin penanganan yang seragam dari transaksi yang terjadi. Urut-urutan proses yang tepat harus dapat menerangkan : a. apa yang harus dikerjakan b. siapa yang mengerjakan c. kapan dilaksanakan dan diselesaikan d. bagaimana cara melaksanakan dan menyelesaikan Suatu sistem yang baik harus mempunyai tujuan dan sasaran yang tepat karena hal ini akan sangat menentukan dalam mendefinisikan masukan yang di butuhkan sistem dan juga keluaran yang dihasilkan. Tujuan Sistem merupakan tujuan dari sistem tersebut dibuat yaitu dapat berupa tujuan organisasi, kebutuhan organisasi, permasalahan yang ada dalam suatu organisasi maupun urutan prosedur untuk mencapai tujuan organisasi. Sistem memiliki batasan-batasan yang berupa peraturan-peraturan yang ada dalam suatu organisasi (misalnya), biaya-biaya yang dikeluarkan, orangorang yang ada dalam organisasi, bahkan fasilitas sarana dan prasarana. 1.1.2 Pengertian Basis Data Data menggambarkan suatu kejadian yang sedang terjadi, dimana data akan diolah dan diterapkan dalam sistem menjadi input yang berguna dalam suatu sistem. Secara rinci definisi dari data adalah sebagai berikut: a. Data adalah penggambaran dari suatu kejadian yang kita hadapi. b. Data bisnis adalah penggambaran dari suatu organisasi tentang sesuatu (resources) dan kejadian (transactions) yang terjadi. c. Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Kejadian (event) adalah sesuatu yang terjadi pada saat tertentu. Misalnya: penjualan adalah transaksi perubahan nilai barang menjadi nilai uant atau piutang dagang. Kesatuan nyata (fact and entity) adalah berupa suatu obyek nyata seperti tempat, benda, dan orang yang betul-betul ada dan terjadi. d. Data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi penerimanya. Pengolahan data adalah waktu yang digunakan untuk menggambarkan perubahan bentuk data menjadi informasi yang memiliki kegunaan. Basis adalah wadah, tempat, pangkalan atau dalam hali ini diartikan storage( tempat penyimpanan). Sekumpulan data baik berupa file maupun berkas, yang memiliki hubungan relasi internal dengan entri – entrinya disebut Basis Data. Secara rinci definisi basis data sebagai berikut: a. Kumpulan tabel yang saling berhubungan yang disimpan dalam media penyimpanan elektronik b. Kumpulan data yang terorganisir dari berbagai sumber yang secara logika mempunyai arti implicit c. Penyajian suatu aspek dari dunia nyata d. Basis data perlu dirancang dan dibangun agar dapat digunakan untuk berbagai kepentingan. 1.1.3 Pengertian Sistem Basis Data Sistem basis data adalah suatu jaringan kerja untuk menyusun dan mengelola record-record data menggunakan komputer, untuk menyimpan atau merekam serta memelihara data operasional lengkap sehingga mampu menyediakan informasi yang optimal yang di perlukan user untuk proses pengambilan keputusan. Sistem basis data merupakan kumpulan tabel yag saling berhubungan dalam sebuah basis data disebuah system komputer dan sekumpulan program yang memungkinkan beberapa pemakai dan atau program lain untuk mengakses dan memanipulasi tabel-tabel tersebut. Sistem basis data adalah gabungan antara basis data dan perangkat lunak sistem manajemen basis data termasuk didalmnya program aplikasi yang dibuat dan bekerja sama dalam suatu sistem. 1.2 Komponen Basis Data Ditinjau dari komponen-komponennya, Sistem Basis Data senantiasa terdiri dari: a) Perangkat Keras ( Hardware ) b) Perangkat Lunak ( Software ) c) Perangkat Manusia / Pemakai (Brainware) d) Data Base 1.2.1 Perangkat Keras ( Hardware) Perangkat keras adalah piranti yang terkait dengan basis data pada umumnya mencakup komputer baik stand alone maupun mullti user, media penyimpanan, serta piranti komunikasi data. Perangkat keras mencakup tiga piranti utama, yaitu : Piranti Masukan, seperti : keyboard, mouse, Flashdisk, Harddisk Piranti pemrosesan, mencakup : ALU, I/O controller, Memory dan Control Unit. Piranti keluaran, seperti :monitor, printer, CD/FD. Lalu dimana basis data ditempatkan? Mengingat fungsinya sebagai pusat pengendali dan pelayanan dalam jaringan, maka basis data hampir selalu di tempatkan di server. 1.2.2 Perangkat Lunak ( Software) Ada 3 jenis perangkat lunak dalam pengelolaan basis data: 1. Operating System ( Sistem Operasi ) Keberadaan Sistem Operasi pada sebuah perangkat komputer dan jaringan komputer adalah keharusan, karena Sistem Operasi memiliki layanan low level (bahasa mesin ) untuk perangkat lunak apapun. Yang berfungsi untuk memfungsikan sistem komputer, menegendalikan seluruh sumber daya komputer dan melakukan operasi-operasi dasar dalam komputer yaitu operasi Input Output, pengelolaan file, pengaturan interupsi dan sebagainya. Secara umum Sistem operasi dibedakan menjadi : Untuk Stand alone ; Ms. Dos, Windows 3.1, windows 95 -2000 Untuk jaringan : Novel Netware, Windows NT, windows 200, server linux, unix 2. Data Base Management System ( Sistem pengelola Basis data ) Sistem manajemen basis data adalah sistem perangkat lunak yang secara umum dapat digunakan untuk melakukan pemrosesan dalam hel pendefinisian, penyusunan dan manipulasi basis data untuk berbagai aplikasi. Software utama dalam pengelolaan dan pengolahan data, dimana data di kelola dan di organisir secara fisik. Contoh DBMS : Oracle, SQL Server, MySQL, Sybase, Interbase, dll 3. Aplikasi Program Basis Data Merupakan kelompok perangkat lunak yang berinteraksi langsung dengan end-user. Melalui aplikasi ini, end-user akan dengan mudah (user-friendly) dan terarah melakukan berbagai proses pengelolaan dan pengolahan terhadap basis data. Bahkan dapat melakukan pembatasan terhadap aktivitas user yang menentukan apa yang boleh atau yang tidak boleh dilakukan. Dalam apliksai basis data ini, end user biasanya hanya mendapatkan sebagian data atau informasi yang tersimpan dalam basis data-nya, dikarenakan kebutuhan setiap end user berbeda satu sama lain. 1.2.3 Perangkat Manusia ( Brainware ) Beberapa jenis pemakai berdasarkan cara pekerjaannya dan cara mereka ber-interaksi dengan Sistem Basis Data : 1. Database Administrator Merupakan manajemen pemakai database yang yang berinteraksi tugasnya langsung dengan meng-konfigurasi sistem sistem basis data secara keseluruhan, seperti : a. memantau kinerja sistem b. mendefinisikan pemakai dan otoritasnya c. menentukan isi dan sekuritas basis data & mengalokasikan besarnya ruang penyimpanannya d. merencanakan back-up dan recovery e. melakukan pengaturan peningkatan performansi 2. Pengembang Aplikasi ( Programmer ) Merupakan kelompok pemakai yang tugas utamanya adalah a. Membuat program aplikasi yang di tujukan ke end user untuk mengakses data base b. Memasukkan perintah-perintah Data Manipulation Language (DML) untuk menampilkan data base 3. Pemakai Mahir ( Casual User ) Merupakan kelompok pemakai yang berinteraksi dengan basis data langsung dengan menggunakan aplikasi antar muka (interface). Pemanfaat yang dilakukan dengan menuliskan perintah query (Commond Line) yang telah ditentukan sistem manajemen basis data hingga reparasi terhadap database yang mengalami kerusakan. 4. Pemakai Akhir ( End User ) Pemakai yang berperan dalam pemasukan data (Data Entry) dalam rangka membentuk basis data yang lengkap dengan menggunakan aplikasi pengguna basis data yang telah di buat oleh developer. Setelah pemasukan data telah lengkap, pemakai ini dapat diberi tanggung jawab untuk melakukan pekerjaan pengecekan (verifikasi), perubahan hingga pencetakan data/informasi (pelaporan). 1.2.4 Data Base Ada banyak pilihan dalam mengorganisasi, ada banyak pertimbangan dalam membentuk relasi antar data, tetapi pada akhirnya yang terpenting adalah objektif utama yang selalu harus kita ingat : kecepatan dan kemudahan berinteraksi dengan data yang dikelola/diolah.Basis Data terdiri atas 3 hal yaitu: 1. Kumpulan data yang terorganisir 2. Relasi antar data 3. Kemudahan berinteraksi dengan dengan data yang di kelola/ di olah Sistem Basis Data baru akan hidup, berjalan benar dan mencapai tujuannya jika pemakai beraktifitas sesuai dengan prosedur/Aturan yang telah ditetapkan. Pemakai tidak perlu tahu bagaimana sebetulnya data perkiraan dan jurnal di simpan secara fisik atau bagaimana proses posting secara detail dan akurat melakukan perhitungan dan pengolahan data. Gambar 1.1 Hirarki Perangkat Lunak terhadap Data base 1.3 Abstraksi Data Tujuan dari DBMS: untuk menyediakan antar muka (interface) dalam melihat data yang lebih ramah kepada pemakai, sehingga data yang terlihat oleh pemakai akhir sebenarnya berbeda dengan yang tersimpan secara fisik. Gambar 1.2 Level Abstraksi DatA Tingkat / level Abstraksi Data : 1. Tingkat Penampakan ( View Level ) Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Data yang dikenal pemakai bisa berbeda-beda. Banyak pemakai dalam system basis data tidak akan terlibat (concern) dengan semua data/informasi yang tersimpan. 2. Tingkat Konseptual ( Conceptual Level) Menggambarkan data apa yang sebenarnya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data lain. Pemakai yang berperan pada level ini bertanggung jawab pada aturan konversi dari data dlam format kode menjadi deskripsi ketika ditampilkan dan sebaliknya dari data deskripsi menjadi kode ketika disimpan. 3. Tingkat Fisik ( Physical Level ) Level yang menunjukkan bagaimana sesungguhnya suatu data di simpan. Secara fisik, Basis data dapat disimpan dalam organisasi Rasional, Hirarkis, dan Tabel sebagai komponen utama dari basis data yang direpresentasikan sebagai gabungan struktur dan datanya sendiri. kemudian 1.4 Database Language Data Base Management System (DBMS) merupakan perantara bagi pemakai dengan basis data dalam disk. Cara berinteraksi antara pemakai dengan basis data diatur dalam bahasa khusus yang ditetapkan oleh pihak pembuat DBMS yang disebut bahasa basis data yang terdiri atas sejumlag perintah (command) yang dapat dituliskan/diberikan untuk kemudian diproses. 1.4.1 Data Definition Language ( DDL ) Struktur basis data yang menggambarkan desain basis data secara keseluruhan, dimana kita dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur penyimpanan tabel. Hasil dari kompilasi tabel yang disimpan dalam file khusus yang di sebut Kamus Data (Data Dictionary). Kamus Data merupakan suatu metadata yang mendiskripsikan data yang sesungguhnya. Bahasa query yang digunakan adalah create (membuat baik database maupun tabel), alter ( perubahan data baik penambahan kolom, mengganti nama field, memodifikasi kolom, dll ) dan drop ( menghapus database atau tabel) 1.4.2 Data Manipulation Language ( DML ) Berisi kumpulan perintah yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data. Manipulasi data berupa: 1. Penyisipan/Penamabahan Data baru ke suatu basis data 2. Penghapusan data dari basis data 3. Pengubahan dari basis data DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data (untuk kemudian menampilkannya atau memanipulasinya) sebagaimana direpresentasikan oleh model data. Ada 2 jenis procedural yaitu: 1. Prosedural yang mensyaratkan agar pemakai menentukan data apa yang diinginkan serta bagaimana cara mendapatkannya. 2. Nonprosedural yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya. 1.4.3 Data Control Language ( DCL ) Merupakan struktur basis data yang digunakan untuk memberikan hak akses untuk pemakai atau mencabut hak akses dari pemakai dalam pengisian data, mengupdate data, menampilkan data atau bahkan tidak mem-perbolehkan melihat data. Bahasa query yang digunakan adalah grant ( memberikan hak akses kepada user baik dalam pengisian data, menampilkan data, merubah atau memperbaharui isi data atau bahkan hak akses untuk semuanya) dan revoke ( membatasi atau mencabut hak akses dari user untuk pengisian data, menampilkan data, merubah atau memperbaharui isi data atau bahkan hak akses untuk semuanya) 1.5 Data Base Management system ( DBMS ) Database Management System terbagi atas modul-modul yang masingmasing memiliki tanggung jawab dalam membentuk struktur system basis data secara keseluruhan. Sebuah DBMS umumnya memiliki sejumlah modul fundamental sebagai berikut: 1. DML Compiler : menterjemahkan ekspresi DML dalam bahasa query ke perintah-perintah low-level yang dapat di mengerti query evaluation engine. 2. DML Precompiler : mengkonversi perintah DML yang ditambahkan dalam sebuah program aplikasi ke pemanggilan prosedur normal 3. DDl Intreperter : mengkonversi perintah DDL ke dalam sekumpulan tabel metadata yang disimpan ddalam kamus data. 4. Query Evaluation Engine: mengeksekusi perintah low-level yag di hasilkan DMLCompiler 5. File Manager : mengelola alokasi ruang dalam disk dan struktur data yang dipakai untuk merepresentasikan informasi yang tersimpan dalam disk. 6. Buffer Manager: bertanggung jawab dalam pengambilan data dari disk ke memori utama Manfaat Pembedaan Memungkinkan pembuatan dan penggunaan perangkat-perangkat abstrak untuk menyederhanakan proses perancangan software Menyediakan sarana untuk mengontrol akses kepada basis data Guna mendapatkan independensi data, kemampuan untuk mengubah pengorganisasian basis data tanpa mengubah software aplikasi 1.6 Problem- problem dalam basis data konvensional 1. Redudansi dan Inkonsistensi Redudansi data berkaitan dengan adanya/banyaknya duplikasi data di sejumlah file/tabel. Redudansi akan menjadi berbahaya, ketika ada upaya m anipulasi data ( pengubahan data dan penghapusan data), karena akan mudah menimbulkan inkonsistensi data. Redudansi yang dimaksud disini tidak hanya pada redudansi yang ada pada basis data yang belum memenuhi aturan-aturan normalisasi, tapi juga ada reduddansi yang menjadi keniscayaan karena penggunaan basis data relasional. Redudansi yang tidak memenuhi aturan normalisasi dapat di ilustrasikan pada sebuah tabel dengan 3 field yaitu A, B, dan C dimana A merupakan key. Jika field non-key C memiliki ketergantungan fungsional pada field non-key B, sementara B memiliki ketergantungan fungsional pada A. maka akan dijumpai redudansi dimana nilai-nilai C yang sama akan selalu hadir untuk record – record dengan nilai B yang sama. Jika terjadi manipulasi data pada C hanya pada sebuah record, maka kondisi inkonsistensi bisa terjadi karena akan ditemui nilainilai C yang tidak sama/konsiste untuk record-record dengan nilai B yang sama di dalam tabel. 2. Kesulitan dalam mengakses data Kesulitan dalam pengaksesan data akan muncul jika ada permintaan pengaksesan data yang tidak umum, diluar yang telah disediakan program aplikasi, atau jika tabel-tabel yang ingin diakses berasal dari database yang berbeda 3. Isolasi data Karena data ditempatkan dalam berbagai file yang seringkali berada dalam format berbeda, maka akan muncul kesulitan untuk menulis program aplikasi baru yang bersifat umum untuk mengambil data tertentu. Isolasi data sering terjadi jika kita bekerja terhadap basis data yang dikelola oleh DBMS yang berbeda. 4. Multi user Dalam upaya meningkatkan performa sistem, banyak sistem memperbolehkan banyak pemakai melakukan akses data. Pengaksesan data oleh banyak pemakai dalam bentuk operasi pengubahan ( Updating ) disamping berpengaruh terhadap performansi sistem juga dapat mengakibatkan inkonsistensi data. Oleh karena itu diperlukan pemberian hak akses, agar tidak terjadi banyak pemakai yang melakukan pengubahan data. 5. Security ( Keamanan Data ) Tidak semua orang boleh bersentuhan dengan sebuah sistem basis data. Untuk itu diterapkan mekanisme password. Keamanan data disini diberikan dalam bentuk hak akses pada penggunaan basis data dengan menggunkan Control Language pada DBMS. Sehingga tidak semua pemakai diperbolehkan berinteraksi dengan basis data dalam melakukan pengaksesan ke semua jenis data 6. Integritas Data Nilai-nilai data dalam basis data seharusny memenuhi berbagai batasan (constraint) konsistensi sesuai dengan aturan nyata yang berlaku dimana basis data diimplementasikan. Misalnya saja saldo minimal dari rekening tabungan nasabah adalah Rp.25.000,00 maka harus dipenuhi kondisi tidak ada satupun record dalam tabel simpanan yang saldonya lebih kecil dari 25.000. Aturan nyata semacam ini akan mudah dilanggar, karena aturan tersebut bersifat situasional dan jarang terakomodasi dalam constraint yang dapat kita definisikan pada suatu DBMS