PRAKTIKUM SISTEM BASIS DATA MODUL 1 Pengenalan Database Management System
TUJUAN PRAKTIKUM: 1. Memahami fungsi Database Management System (DBMS) serta kemungkinan penggunaannya 2. Memahami cara mengkonfigurasi server database PostgreSQL 3. Memahami dasar-dasar penggunaan software client psql untuk mengakses database
DASAR TEORI:
Database Management System (DBMS) adalah sekumpulan program yang memungkinkan user untuk membuat dan mengelola database. DBMS adalah general-purpose software system yang memfasilitasi proses mendefinisi, mengkonstruksi, memanipulasi, dan berbagi database kepada banyak user dan aplikasi. Mendefinisikan database maksudnya adalah menentukan tipe data, struktur, dan aturan (constraint) dari data yang akan disimpan di dalam database. Definisi atau informasi deskriptif database juga disimpan oleh DBMS dalam bentuk database catalog atau dictionary, yang disebut sebagai meta-data. Mengkonstruksikan database maksudnya adalah sebuah proses untuk menyimpan data di dalam media penyimpanan yang dikontrol oleh DBMS. Memanipulasi database artinya menggunakan fungsi tertentu seperti query database untuk mendapatkan data tertentu, update data untuk merefleksikan perubahan yang terjadi pada universe of discourse (UoD), dan menghasilkan report dari data. Berbagi database memungkinkan banyak user untuk mengakses database secara bersamaan.
Program aplikasi mengakses database dengan cara mengirimkan query atau request data kepada DBMS. Proses query menyebabkan data tertentu dapat ditampilkan, sedangkan proses transaction membuat data tertentu dapat dibaca dan ditulis ulang dalam database. DBMS juga berfungsi untuk melindungi dan mengelola database dalam jangka periode waktu yang lama. Perlindungan termasuk system protection saat komputer mengalami malfungsi hardware atau software dan system protection melawan akses terlarang. Database besar biasanya memiliki siklus operasi hingga bertahun-tahun, jadi NETWORK LABORATORY Electrical Engineering Department, 2 nd floor Universitas Indonesia Depok. 16424
pg. 2
DBMS harus mampu mengelola database yang memungkinkan sistem untuk berevolusi sesuai perubahan kebutuhan sepanjang masa. Database dan DBMS software bersama membentuk database system. Perintah-perintah yang digunakan untuk mengelola basis data mempunyai standar yang disebut dengan SQL (Structured Query Language). Standar ini dibuat oleh suatu badan yang berwenang (ANSI) sehingga sering disebut juga dengan istilah ANSI SQL. Saat ini standar SQL yang diacu kebanyakan software adalah SQL92 dan SQL99. Pada dasarnya, suatu basis data terdiri atas berbagai tabel yang saling terhubung. Tabel itu sendiri terdiri atas data rinci untuk suatu entitas dan terdiri atas row dan column (pada software non-SQL dan software basis data tertentu sering disebut record dan field). Tabel itu sendiri jika digambarkan merupakan suatu baris serta kolom sebagai berikut :
PostgreSQL
PostgreSQL adalah object-rlational database management system (ORDBMS) berbasis POSTGRES, Version 4.2, dikembangkan di University of California, tepatnya di Berkeley Computer Science Department. POSTGRES telah menjadi pioneer atas konsep-konsep yang sekarang banyak diadopsi oleh database system yang bersifat komersial. PostgreSQL adalah software open-source hasil turunan dari kode buatan Berkeley ini. Ia mendukung bagian besar dari standar SQL dan menawarkan banyak fitur modern, seperti : complex queries foreign keys triggers views transactional integrity multiversion concurrency control Juga, PostgreSQL dapat diperluas fungsinya oleh user dengan berbagai cara, sebagai contoh dengan menambahkan : data types functions operators aggregate functions index method procedural languages Dan karena faktor liberal license, PostgreSQL dapat digunakan, dimodifikasi, dan didistribusikan oleh semua orang tanpa perlu mengeluarkan biaya sepeserpun, baik untuk keperluan pribadi, NETWORK LABORATORY Electrical Engineering Department, 2 nd floor Universitas Indonesia Depok. 16424
pg. 3
komersial, maupun akademik. Lebih jauh lagi, berikut adalah tabel perbandingan PostgreSQL dengan DBMS lainnya :
PostgreSQL didistribusikan dalam dua kategori software yaitu server dan client. Server diperlukan untuk menyediakan layanan basis data sedangkan client diperlukan untuk mengakses basis data.
Konfigurasi Server
Konfigurasi server PostgreSQL pada Windows terletak pada direktori Program Files/PostgreSQL/9.1/data. Konfigurasi terdapat pada file-file dengan ekstensi *.conf. Berikut ini adalah penjelasan fungsi masing-masing : 1. pg_hba.conf : mengatur autentikasi client. Agar client bisa mengakses suatu basis data PostgreSQL, konfigurasi ini yang harus diatur 2. pg_ident.conf : mengatur autentikasi client dengan metode ident 3. postgresql.conf : mengatur konfigurasi software PostgreSQL
Software Client
PostgreSQL telah menyertakan software client untuk mengakses basis data dalam dua versi, yakni melalui shell dan melalui GUI (graphic user interface). Software yang menggunakan environment shell adalah psql, sedangkan GUI biasanya memakai pgAdmin atau pgAccess. Praktikum Sistem Basis Data ini menggunakan psql.
Pengenalan psql
psql merupakan PostgreSQL interactive terminal berbasis front-end. Software ini memungkinkan user untuk mengetikkan query secara interaktif, mengirimkannya pada PostgreSQL, dan menampilkan hasil query. Alternatif lain, psql juga mampu memberikan input dari file. Sebagai tambahan, psql juga menyediakan sejumlah meta-commands dan bermacam fitur-fitur layaknya shell untuk memfasilitasi penulisan script dan mengautomasi berbagai task tertentu. NETWORK LABORATORY Electrical Engineering Department, 2 nd floor Universitas Indonesia Depok. 16424
pg. 4
psql adalah aplikasi client regular pada PostgreSQL. Agar dapat melakukan koneksi ke basis data yang diinginkan, anda harus mengetahui nama dari basis data target, hostname dan port number dari server, serta username yang digunakan untuk melakukan koneksi. Sebagai contoh :
Gambar di atas menunjukkan psql mengakses server pada localhost, nama basis data adalah netlab, server menggunakan port number 5432, dan username adalah postgres. Selanjutnya psql akan meminta user untuk memasukkan password. netlab=# menunjukkan bahwa basis data yang sedang diakses bernama netlab. Disini user dapat memasukkan dua macam command, yakni SQL command dan Meta-command
SQL Command
Di prompt, user dapat mengetikkan SQL (Standard Query Language) command. Input line akan dikirim ke server saat command-terminating semicolon (;) diketikkan. Command ini dapat diperlebar menjadi beberapa line supaya lebih mudah dibaca. Jika command telah dikirim dan tereksekusi tanpa error, hasil dari command akan terdisplay di layar. Contoh :
contoh query sederhana (menampilkan table)
Meta-Command
Apapun yang kita ketikkan yang dimulai dengan backslash (\) adalah psql meta- command yang diproses oleh psql itu sendiri. Command ini membuat psql sangat berguna untuk NETWORK LABORATORY Electrical Engineering Department, 2 nd floor Universitas Indonesia Depok. 16424
pg. 5
administrasi atau scripting. Meta-command juga biasa disebut sebagai slash atau backslash command. Contoh meta-command :
Role Role merupakan entitas yang memiliki objek database dan wewenang (privilege) terhadap database. Role dapat dianggap sebagai user, kelompok, atau keduanya tergantung bagaimana role itu digunakan. Untuk membuat role:
CREATE ROLE role_name PASSWORD role_password OPTION1 OPTION2 OPTION3 [Optionetc] ; NETWORK LABORATORY Electrical Engineering Department, 2 nd floor Universitas Indonesia Depok. 16424
pg. 6
keterangan : tidak wajib menyertakan password dalam membuat role. Option dapat berupa : LOGIN : Wewenang untuk melakukan koneksi ke database. SUPERUSER : Memiliki hak khusus untuk mengabaikan semua izin [dapat melakukan manipulasi database sepenuhnya] kecuali untuk login. CREATEROLE : Izin untuk dapat membuat role lain. CREATEDB : Izin untuk dapat membuat database. REPLICATION : Dapat memulai replikasi menggunakan file arsip WAL secara stream oleh standby server. etc Untuk mengedit role yang sudah dibuat, gunakan perintah ALTER :
Untuk melihat seluruh role dapat menggunakan perintah > \du
GROUPING ROLE Groping ROLE adalah mengelompokkan beberapa ROLE ke sebuah group ROLE. Syntaxnya :
Sedangkan untuk mencabut hak group:
Membuat dan Menghapus Basis Data Database atau basis data merupakan sekumpulan data yang disimpan dan diatur sedemikian rupa sehingga data tersebut dapat dicari serta diambil informasinya dengan cepat dan efisien. Membuat database:
Sedangkan untuk menghapus database:
Drop DATABASE db_name; Create DATABASE db_name; REVOKE group_role FROM role1, role2, role3, ... ; GRANT group_role TO role1, role2, role3, ... ; ALTER ROLE role_name PASSWORD role_password OPTION1 OPTION2 OPTION3 [Optionetc] ;