Bab 2. SQL Dan PostgreSQL
Bab 2. SQL Dan PostgreSQL
SQL
SQL (dibaca SeQueL) merupakan kependekan dari Structured Query Language yaitu bahasa
yang dirancang khusus untuk komunikasi dengan database. Tidak seperti bahasa-bahasa
lainnya (seperti bahasa C, basic, pascal atau bahasa pemprograman yang lain) Bahasa SQL
sengaja dirancang untuk melakukan hal secara sederhana dan efisien untuk membaca dan
menulis data dari suatu database.
SQL adalah bahasa standar untuk mengakses dan memanipulasi server database.
Apa itu SQL?
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal
dengan System/R.
Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data
populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran
Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam
manajemen basis data.
Standarisasi SQL dimulai pada tahun 1986, ditandai dengan dikeluarkannya standar SQL
oleh ANSI. Standar ini sering disebut dengan SQL86.
Standar tersebut kemudian diperbaiki pada tahun 1989 kemudian diperbaiki lagi pada tahun
1992. Versi terakhir dikenal dengan SQL92.
Pada tahun 1999 dikeluarkan standar baru yaitu SQL99 atau disebut juga SQL99, akan tetapi
kebanyakan implementasi mereferensi pada SQL92.
Saat ini sebenarnya tidak ada server basis data yang 100% mendukung SQL92. Hal ini
disebabkan masing-masing server memiliki dialek masing-masing.
Lingkungan SQL
1. Katalog
Kumpulan skema yang merupakan descripsi database.
2. Skema
Struktur yang berisi descripsi obyek yang dibuat pengguna ( table, view, constraint).
3. Data Definition Language ( DDL )
Perintah yang digunakan untuk mendefinisikan basisdata. Termasuk : pembuatan (create),
pengubahan (alter) dan penghapusan (drop) table dan penetapan constraint.
4. Data Manipulation Language ( DML )
Perintah untuk merawat / memanipulasi data table dan query basisdata, meliputi :
menambah data (insert), menghapus data (delete), merubah data (update) dan
menampilkan data (select).
5. Data Control Language ( DCL )
Perintah yang mengontrol basisdata, termasuk administrasi hak akses dan commit data.
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
POSTGRESQL
PostgreSQL atau sering disebut Postgres merupakan salah satu dari sejumlah database besar
yang menawarkan skalabilitas, keluwesan, dan kinerja yang tinggi. Penggunaannya begitu
meluas di berbagai platform dan didukung oleh banyak bahasa pemrograman. Bagi
masyarakat TI (teknologi informasi) di Indonesia, Postgres sudah digunakan untuk berbagai
aplikasi seperti web, billing system, dan sistem informasi besar lainnya.
Object-Relational Database Management System (ORDBMS) yang sekarang kita kenal
sebagai PostgreSQL merupakan pengembangan dari package POSTGRES yang ditulis di
University of California, Berkeley. Dibalik semua dekade yang terlewati selama
pengembangannya, PostgreSQL sekarang adalah open-source database terbaik yang tersedia
dimanapun.
Sejarah dari POSTGRES dimulai dari proyek POSTGRES, dipimpin oleh Professor Michael
Stonebraker, dan disponsori oleh Defense Advanced Research Projects Agency (DARPA),
Army Research Office (ARO), National Science Foundation (NSF), dan ESL, Inc.
Pengimplementasian POSTGRES bermula pada tahun 1986.
POSTGRES telah digunakan untuk mengimplementasikan banyak penelitian dan
pengembangan aplikasi. Diantaranya : system analisis data finansial, package monitoring
performa mesin jet, database dari pelacakan asteroid, database informasi medis,
dan beberapa Sistem Informasi Geografi (SIG). POSTGRES juga digunakan sebagai
pendukung edukasi pada beberapa universitas. Pada akhirnya, Illustra Information
Technologies (kini melakukan merger menjadi Informix, yang saat ini dimiliki oleh IBM)
mengambil code POSTGRES dan mengkomersialkannya. Pada akhir 1992, POSTGRES
menjadi data manager utama untuk proyek Sequoia 2000 scientific computing.
Jumlah dari komunitas user eksternal hampir berlipat ganda selama 1993. Jumlah ini semakin
meningkat seiring maintenance dari prototype code dan support yang memakan banyak
waktu yang seharusnya digunakan untuk riset database. Sebagai usaha untuk mengurangi
support, proyek POSTGRES Berkeley secara resmi diakhiri dengan Versi 4.2.
Postgres95 :
Pada 1994, Andrew Yu dan Jolly Chen menambahkan interpreter SQL language untuk
POSTGRES. Dengan nama baru, Postgres95 secara subsequent dirilis ke web untuk
menemukan jalurnya sebagai sebuah open-source descendant dari kode awal POSTGRES
Berkeley.
Kode Postgres95 sudah sesuai dengan ANSI C dan ukurannya ditrim hingga 25%. Banyak
perubahan internal meningkatkan performance dan maintainabilitas. Rilis Postgres95 1.0.x
berjalan sekitar 30-50% lebih cepat pada Wisconsin Benchmark dibandingkan dengan
POSTGRES Versi 4.2.
PostgreSQL :
Pada 1996, Semakin jelas bahwa nama Postgres95 sudah tidak sesuai seiring berjalannya
waktu. Nama yang dipilih adalah PostgreSQL, untuk merefleksikan hubungan antara
POSTGRES asli dan versi terbarunya yang sudah SQL capable. Pada waktu yang sama,
penomoran versi selanjutnya dimulai pada 6.0, kembali pada sequence awal yang dibentuk
pada proyek POSTGRES Berkeley.
Emphasis selama pengembangan Postgres95 difokuskan pada indentifikasi dan pemahaman
problem-problem yang ada pada server code. Dengan PostgreSQL, emphasis dialihkan untuk
augmentasi fitur dan kapabilitas,meskipun masih berjalan disemua area.
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
Fitur PostgreSQL
1. PostgreSQL adalah sebuah object-relational database management system (ORDBMS)
2. Bersifat open source.
3. Mendukung standar SQL92 dan SQL99
4. Mendukung bahasa pemrograman C, C++, Java, Tcl, Perl, Python, PHP, dst.
5. Kapasitas penyimpanan 32 TeraByte.
6. Foreign Key Constraint
7. SubSELECT ( SubQuery )
8. Views dan Triggers
9. Function dan Stored Procedure
10. Replikasi dan Cluster
Arsitektur PostgreSQL
1. Berbasis Client-Server.
2. Backend software untuk database server (server-side): Postmaster
3. Frontend software (client-side):
a. psql (disediakan dalam paket PostgreSQL)
b. Client berbasis GUI (PgAdmin, PgAccess, ApplixWare, dsb.)
c. Client berbasis Web (phpPgAdmin)
d. Buat aplikasi sendiri (C, C++, Java, PHP, dsb.)
Perintah Dasar PostgreSQL
1. Login
Pada latihan kita, saya menggunakan PostgreSQL 8.3.7. Dalam latihan selanjutnya, kita
membutuhkan database yang ada didalam setiap user PostgreSQL, jalankan Command
Prompt yang ada di program PostgreSQL dengan cara Start Programs PostgreSQL
8.3 Command Prompt. Ketikkan perintah :
psql -U postgres -h 192.168.0.211 -d postgres
dan masukkan passwordnya.
Keterangan :
C:\PostgreSQL\bin
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
Psql
-U
Postgres
-h
192.168.0.211
-d
Postgres
2. User
User adalah pengguna yang diperbolehkan untuk mangakses database. Secara default
database PostgreSQL menyediakan user yang bisa langsung mengakses database dengan
nama postgres dan passwordnya telah ditentukan pada saat kita menginstall
PostgreSQL, user ini merupakan user Administrator.
Selain user postgres, PostgreSQL menyediakan fasilitas untuk membuat user baru. Untuk
dapat membuat user baru, hanya user yang mempunyai tinggkatan setara dengan
Administrator.
Untuk membuat user, ketikkan perintah :
CREATE ROLE ichwan LOGIN PASSWORD 'ichwan'
CREATEDB
VALID UNTIL 'INFINITY';
Perhatikan nama role dan password, karakter yang digunakan adalah karakter kecil. Anda
perlu memperhatikan setiap kali anda melakukan pengetikan dalam administrasi database
PostgreSQL karena PostgreSQL case-sensitive ( membedakan karakter besar dan karakter
kecil ). Untuk lebih amannya, gunakan saja karakter kecil.
Menghapus user :
drop user ichwan;
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
User ichwan login tapi masih menggunakan database postgres karena user ichwan
masih belum memiliki database. Selanjutnya kita akan membuat database dari user
ichwan.
3. Database
Database default yang kita peroleh saat kita mengistall PostgreSQL adalah database :
Name
|
Owner
|
----------------------------------postgres
| postgres
|
template0
| postgres
|
template1
| postgres
|
Database yang bisa kita gunakan adalah database postgres dan database template0 dan
template1 database yang di khususkan untuk system.
Selain database diatas, kita bisa membuat database baru dengan cara :
create database ichwan_db;
Membuka database :
Untuk membuka database, kita mempunyai 2 cara yaitu :
1. Jika kita sudah login kedalam aplikasi PostgreSQL, kita bisa menggunakan perintah :
\c ichwan_db;
Perinath \c adalah perintah untuk connect ke salah satu database.
2. Jika kita masih belum login kedalam aplikasi PostgreSQL, perintah yang digunakan
adalah :
psql -U ichwan h 192.168.0.211 -d ichwan_db;
Untuk melihat daftar database yang telah terbentuk, anda dapat mengetikkan perintah:
\l
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
Ukuran
Keterangan
2 bytes Bilangan bulat kecil
4 bytes Bilangan bulat sedang
bigint
8 bytes
decimal
variable
numeric
variable
real
double
4 bytes
8 bytes
Bilangan pecahan
Bilangan bulat /
pecahan
Bilangan pecahan
Bilangan pecahan
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
Nilai
-32768 32767
-2147483648 2147483647
-9223372036854775808
9223372036854775807
Tidak ada batasan
Tidak ada batasan
6 desimal point
15 desimal point
7
precision
serial
4 bytes
bigserial
8 bytes
Bilangan Bulat
(autoincrement)
Bilangan Bulat ukuran
besar (autoincrement)
1 2147483647
1 9223372036854775807
b. Monetary
Jenis data monetary menyimpan sejumlah mata uang dengan pecahan presisi tetap.
Type data
Money
Ukuran
8 bytes
Keterangan
Jumlah mata uang
Nilai
-92233720368547758.08
92233720368547758.07
c. Character
Type data character adalah type data yang menampung semua karakter.
Type data
character varying(n)
varchar(n)
character(n)
char(n)
Ukuran
char
Text
Keterangan
d. Binary
Type data bytea memungkinkan penyimpanan string biner.
Type data
Bytea
Ukuran
1 atau 4
Keterangan
Panjang variable binary string dapat kita tentukan
e. Date / Time
Type data yang mampu menyimpan data tanggal dan jam.
Type data
Ukuran
8 byte
Keterangan
Tanggal dan jam tidak ada zona waktu
8 byte
4 byte
8 byte
Time with
time zone
12 byte
Interval
12 byte
Interval waktu
timestamp
timestamp
with time zone
Date
Time
f. Boolean
Type data boolean hanya dapat menampung dua pilihan data yaitu true atau false.
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
Type data
Nilai valid
True
Boolean
False
'y',
'n',
g. Geometric
Type data geometric adalah type data yang mampu menampung obyek 2 dimensi.
Type data
point
Ukuran
16 bytes
line
32 bytes
lseg
box
32 bytes
32 bytes
16+16n
bytes
16+16n
bytes
40+16n
bytes
Keterangan
Koordinat titik
Garis yang tidak
terbatas
Ruas Garis
Kotak persegi panjang
Mirip polygon tertutup
(closed path)
Mirip polygon terbuka
( open path )
Polygon (similar to
closed path)
24 bytes
Circle
path
path
polygon
circle
Nilai
(x,y)
((x1,y1),(x2,y2))
((x1,y1),(x2,y2))
((x1,y1),(x2,y2))
((x1,y1),...)
[(x1,y1),...]
((x1,y1),...)
<(x,y),r> (center point and
radius)
h. Network Address
Type data yang mampu menyimpan data ip-address
Type data
cidr
inet
macaddr
Ukuran
7 atau 19 bytes
7 atau 19 bytes
6 bytes
Keterangan
IPv4 dan IPv6 networks
IPv4 dan IPv6 hosts dan networks
MAC addresses
i. Bit
Bit string adalah string yang terdiri dari bilangan 1 dan 0.
Type data
Bit (n)
bit varying(n)
Ukuran
Variable
Variable
Basisdata 2 ( Bab 2 )
Oleh : Muhammad Ichwanudin
Keterangan
Ukuran sesuai dengan nilai variable
Ukuran sesuai dengan nilai variable