Sabtu, 12 November 2011

Sistem Basis Data

___________________________________________________________________________











POSTGRESQL


















3KA14
Rian Akbar (16109700)
Rizky Satria Nugraha (10109208)
Siti FIrza Diantry (14109779)






FAKULTAS SISTEM INFORMASI
UNIVERSITAS GUNADARMA
2011


___________________________________________________________________________




Sejarah singkat

Pada tahun 1986 Dikembangkan pertama kali oleh Professor Michael Stonebraker,yang disponsori oleh the Defense Advanced Research Projects Agency (DARPA). Tahun ini merupakan inisialisasi konsep untuk pengembangan sistem.kemudian 1987 Dikembangkan definisi dari model data, pembuatan aturan main,konvensi rasional dan arsitektur dari media penyimpanan.pada tahun berikut-nya 1989 Postgre versi 1 dilaunching dengan banyak kelemahan pada konsep aturan main. pada tahun1990 Postgre versi 2 dilaunching dengan perbaikan pada aturan main.setahun berselang 1991 Postgre versi 3 dilaunching dengan dukungan multiple storage managers, peningkatan pada pengeksekusi query , dan ditulis ulangnya aturan main sistem.nah pada tahun 1993Postgre versi 4.2 dilaunching yang merupakan cikal bakal DBMS masa depan dengan fitur yang lengkap.pada tahun 1994 Postgre berubah nama menjadi Postgres95. Andrew Yu dan Jolly Chen, menambahkan sebuah interpreter untuk bahasa SQL. pada tahun 1996 Postgres95 berubah nama menjadi PostgreSQL. Dan versi ini telah mencapai PostgreSQL versi 6.0 dengan kemampuan yang lebih baik dan ditandai dengan dimulainya proyek Postgres pada Berkeley Research. pada tahun1997 sampai sekarang PostgresSQL telah berkembang dan terus dikembangkan sebagai database relasional dengan lisensi GPL. Hingga saat Desember 2006 versi terakhir dari PostgreSQL adalah 8.2.0.
























___________________________________________________________________________

PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara bebas menurut Perjanjian lisensi BSD. Piranti lunak ini merupakan salah satu basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle. PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data. Fitur-fitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony, PGCluster, dan lain-lain.
PostgreSQL merupakan sebuah Object-Relational Database Management System (ORDBMS) berdasarkan pada PostgreSQL Versi 4.2 yang dikembangkan di Universitas California pada Berkeley Computer Science Department. PostgreSQL sebagi pelopor bagi banyak software DBMS lain yang kemudian menjadi komersial. PostgreSQL memiliki lisensi GPL (General Public License) dan oleh karena itu PostgreSQL dapat digunakan, dimodifikasi dan didistribusikan oleh setiap orang tanpa perlu membayar lisensi (free of charge) baik untuk keperluan pribadi, pendidikan maupun komersil. PostgreSQL merupakan DBMS yang open-source yang mendukung bahasa SQL secara luas dan menawarkan beberapa fitur-fitur modern seperti:


-Complex Queries

-ForeignKeys

-Triggers

-Views

- Transactional Integrity
-Multiversion Concurrency Control

Selain itu, PostgreSQL telah mendukung teknologi lama dengan menambahkan fiturfitur baru pada :
-Data Types

-Functions

-Operators

-Aggregate Functions

-Index Methods

-Procedural Languages







___________________________________________________________________________


Kelebihan dan Kelemahan


  1. PostgreSQL memiliki arsitektur multiproses (forking) yang berarti memiliki stabilitas yang lebih tinggi, sebab satu proses anak yang mati tidak akan menyebabkan seluruh daemon mati—meskipun pada kenyataannya, dulu ini sering terjadi.
  2. Dalam kondisi load tinggi (jumlah koneksi simultan besar), kecepatan PostgreSQL sering mengalahkan MySQL untuk query dengan klausa JOIN yang kompleks, hal ini dikarenakan PostgreSQL mendukung locking di level yang lebih rendah, yaitu row.
  3. PostgreSQL memiliki fitur OO seperti pewarisan tabel dan tipe data, atau tipe data array yang kadang praktis untuk menyimpan banyak item data di dalam satu record.Dengan adanya kemampuan OO ini maka di PostgreSQL, kita dapat mendefinisikan sebuah tabel yang mewarisi definisi tabel lain.
  4. PostgreSQL menyediakan hampir seluruh fitur-fitur database seperti yang terdapat dalam produk database komersial pada umumnya.
  5. PostgreSQL pun memiliki tipe data geometri (seperti titik, garis, lingkaran, poligon) yang mungkin berguna bagi aplikasi ilmiah tertentu
  6. PostgreSQL memberikan kita kemampuan mendefinisikan sebuah field sebagai array.
  7. PostgreSQL memiliki hampir semua fasilitas standar yang biasanya diinginkan: view (tabel virtual), trigger, subselek, stored procedure (dalam beberapa bahasa), dan foreign key constraint
  8. PostgreSQL juga memiliki apa yang disebut rule, yaitu tindakan custom yang bisa kita definisikan dieksekusi saat sebuah tabel di-INSERT, UPDATE, atau DELETE
  9. Postgres juga mempunayai kemampuan untuk membuat konektifitas dengan database lain seperti pgdump, Interbase, pgaccess dan hampir semua database pada Linux.
  10. Kemampuannya menampung data spasial, sehingga ia bisa digunakan dalam pembuatan situs yang berbasis Web GIS untuk pemetaan dan sebagainya.
  11. PostgreSQL memiliki lisensi GPL (General Public License) dan oleh karena itu. PostgreSQL dapat digunakan, dimodifikasi dan didistribusikan oleh setiap orang tanpa perlu membayar lisensi (free of charge) baik untuk keperluan pribadi, pendidikan maupun komersil.
  12. PostgreSQL mendukung banyak jenis bahasa pemrograman, antara lain: SQL, C, C++, Java, PHP, etc.
  13. PostgreSQL juga merupakan alternative untuk sistem database open-source lainnya seperti MySQL dan Firebird, terutama sistem proprietari seperti Oracle, Sybase, IBM’s DB2dan Microsoft SQL Server.







  1. Kurang begitu populer dan cocok bekerja di lingkungan web jika   dibandingkan dengan mysql.
  2. Kurang fokus dalam hal kelangsingan dan kecepatan.
  3. Arsitektur dengan multiproses ini sulit diterapkan ke Windows, sebab Windows amat thread-oriented.
  4. PostgreSQL sendiri saat ini bisa dijalankan di Windows, tapi melalui lapisan emulasi Cygwin.
  5. Kurang unggul dalam hal ketersediaan fungsi built-in.
  6. Replikasi di PostgreSQL sendiri belum disertakan dalam distribusi standarnya.
  7. PostgreSQL sendiri terbatas hanya bisa melakukan penambahan kolom, penggantian nama kolom, dan penggantian nama tabel.



___________________________________________________________________________


Point-in-time recovery
mengizinkan server terus-menerus diback-up sehingga seandainya sebuah disk drive gagal bekerja, database dapat dikembalikan di titik dimana kegagalan itu terjadi.

Savepoints
Berguna bagi database developer yang membutuhkan penanganan error dalam transaksi yang kompleks, yaitu suatu fitur yang mengizinkan suatu bagian tertentu dari transaksi database untuk dibatalkan tanpa mempengaruhi sisa transaksi yang lain.

Tablespaces
Berguna untuk memilih disk mana yang harus digunakan untuk menyimpan database, schema, table atau index. Sehingga kinerja PostgreSQL dalam menangani database raksasa berukuran ratusan gigabyte sampai puluhan terabyte dapat tetap terjaga.


Inheritance = Pewarisan 
Mewariskan objek yang dimiliki ke pada objek yang diturunkan ,dan bersifat menyeluruh. Kelas yang mewariskan biasa di sebut super class / class induk Kelas yang diwariskan biasa di sebut sub class / kelas anak


Help 
Digunkan untuk melakukan pencarian.Help pada fitur PostgreSQL memberikan hasil yang sangat akurat,selain itu fitur help-nya juga dilengkapi dengan berbagai screenshot yang sangat memudahkan.

Rule
Tindakan custom yang bisa kita definisikan dieksekusi saat sebuah tabel di-INSERT, UPDATE, atau DELETE.Selain itu sistem rule ini memungkinkan kita mengendalikan bagaimana data kita diubah atau diambil.

OO 
Fitur OO seperti pewarisan tabel dan tipe data, atau tipe data array yang kadang praktis untuk menyimpan banyak item data di dalam satu record.Dengan adanya kemampuan OO ini maka di PostgreSQL, kita dapat mendefinisikan sebuah tabel yang mewarisi definisi tabel lain.





___________________________________________________________________________



Untuk melihat tipe data yang didikung PostgreSQL, maka dapat menulis perintah berikut ini pada console PostgreSQL.

postgres=# \dT
List of data types

————————————————————————-

Schema        | Name | Description

————+——————+—————————————–

pg_catalog | “any” |

pg_catalog | “char” | single character
pg_catalog | “trigger” |
pg_catalog | “unknown” |
pg_catalog | abstime | absolute, limited-range date and time
pg_catalog | aclitem | access control list
pg_catalog | anyarray |
pg_catalog | anyelement |
pg_catalog | bigint | ~18 digit integer, 8-byte storage
pg_catalog | bit | fixed-length bit string
pg_catalog | bit varying | variable-length bit string
pg_catalog | boolean | boolean, ‘true’/'false’
pg_catalog | box | geometric box ‘(lower left,upper right)’
pg_catalog | bytea | variable-length string, binary values

pg_catalog | character | char(length), blank-padded string, fixed storage length

pg_catalog | character varying| varchar(length), non-blank-padded string, variable storage length

pg_catalog | cid | command identifier type, sequence intransaction id

pg_catalog | cidr | networkIP address/netmask,networkaddress

pg_catalog | circle | geometric circle ‘(center,radius)’

pg_catalog | cstring |
pg_catalog | date | ANSI SQL date
pg_catalog | double precision | double-precision floating pointnumber, 8-byte storage
pg_catalog | inet | IP address/netmask, host address,netmask optional
pg_catalog | int2vector | array of int2, used in system tables
pg_catalog | integer | -2 billion to 2 billion integer, 4-byte
pg_catalog | internal |
pg_catalog | interval | @ <number> <units>, time interval
pg_catalog | language_handler |
pg_catalog | line | geometric line (not implemented)’
pg_catalog | lseg | geometric line segment ‘(pt1,pt2)’
pg_catalog | macaddr | XX:XX:XX:XX:XX:XX, MAC address
pg_catalog | money | monetary amounts, $d,ddd.cc
pg_catalog | name | 63-character type for storing system id
pg_catalog | numeric | numeric(precision, decimal), arbitrary
pg_catalog | oid | object identifier(oid), maximum 4billion
pg_catalog | oidvector | array of oids, used in system tables
pg_catalog | opaque |
pg_catalog | path | geometric path ‘(pt1,…)’
pg_catalog | point | geometric point ‘(x, y)’
pg_catalog | polygon | geometric polygon ‘(pt1,…)’
pg_catalog | real | single-precision floating point number, 4-byte storage

pg_catalog | record |

pg_catalog | refcursor | reference cursor (portal name)

pg_catalog | regclass | registered class

pg_catalog | regoper | registered operator

pg_catalog | regoperator | registered operator (with args)

pg_catalog | regproc | registered procedure
pg_catalog | regprocedure | registered procedure (with args)
pg_catalog | regtype | registered type
pg_catalog | reltime | relative, limited-range time interval
pg_catalog | smallint | -32 thousand to 32 thousand, 2-byte
pg_catalog | smgr | storage manager
pg_catalog | text | variable-length string, nolimitspecified
pg_catalog | tid | (Block,offset),physical location oftuple
pg_catalog | time with time zone | hh:mm:ss, ANSI SQL time
pg_catalog | time without time zone | hh:mm:ss, ANSI SQL time
pg_catalog | timestamp with time zone | date and time with time zone
pg_catalog | timestamp without time zone | date and time
pg_catalog | tinterval | (abstime,abstime), time interval
pg_catalog | void |
pg_catalog | xid | transaction id
(61 rows)
Terlihat tipe data yang didukung jumlahnya ada 61 buah. Tipe data di atas merupakan tipe data tambahan dari tipe data default yang didukung PostgreSQL berdasarkan Standar ANSI 92. Jadi tidak terlihat tipe data seperti VARCHAR,
VARCHAR(2) atau INT. Karena secara default PostgreSQL sudah mendukung hampir semua tipe data yang digunakan pada DBMS modern pada umumnya.











___________________________________________________________________________


Dalam Data Definition Language (DDL) perintah yang biasa digunakan seperti CREATE, DROP dan ALTER. Adapun penjelasan singkatnya sebagai berikut :
-  CREATE,
merupakan perintah yang digunakan untuk membuat struktur objek pada database, yang dapat berupa database, table, view, procedure, trigger dan sebagainya.
- DROP
merupakan perintah yang digunakan untuk menghapus struktur objek pada database.
-  ALTER,
merupakan perintah yang digunakan untuk mengubah struktur objek yang telah ada pada database.
CREATE
DATABASE

Sintaks Membuat Database

CREATE DATABASE name

[ [ WITH ] [ OWNER [=] dbowner ]

[ TEMPLATE [=] template ]

[ ENCODING [=] encoding ]

[ TABLESPACE [=] tablespace ]

[ CONNECTION LIMIT [=] connlimit ] ]

Masuk ke console PosgtresSQL, lalu ketik :
postgres=# CREATE DATABASE Penjualan

postgres-# WITH OWNER=postgres

postgres-# ENCODINg=’SQL-ASCII’

postgres-# TABLESPACE=pg_default;

CREATE DATABASE

Melihat database yang telah dibuat :

postgres=# \l
List of databases
Name | Owner | Encoding
——————+———-+———–

mahasiswa | postgres | SQL_ASCII

penjualan   | postgres | SQL_ASCII

postgres     | postgres | SQL_ASCII

template0 | postgres | SQL_ASCII

template1  | postgres | SQL_ASCII
template_postgis | postgres | SQL_ASCII
(6 rows)


TABLE
Sintaks Membuat Tabel
=======================================================================
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name ( [

{ column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]

| table_constraint

| LIKE parent_table [ { INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS } ] … }

[, ... ]

] )
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace ]
where column_constraint is:
[ CONSTRAINT constraint_name ]
{ NOT NULL |
NULL |
UNIQUE index_parameters |
PRIMARY KEY index_parameters |
CHECK ( expression ) |
REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE
]
[ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
and table_constraint is:
[ CONSTRAINT constraint_name ]
{ UNIQUE ( column_name [, ... ] ) index_parameters |
PRIMARY KEY ( column_name [, ... ] ) index_parameters |
CHECK ( expression ) |
FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON
UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
index_parameters in UNIQUE and PRIMARY KEY constraints are:
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ USING INDEX TABLESPACE tablespace

===========================================================================


VIEW
Sintaks Membuat View
CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW name [ ( column_name [, ...] ) ]

AS query Statement;

Masuk ke console PosgtresSQL, lalu ketik :
================================================
Membuat ViewPenjualan

penjualan=# CREATE VIEW viewjual AS

penjualan-# (

penjualan(# SELECT H.NoFaktur, H.Tanggal, H.KodePelanggan,

penjualan(# P.NamaPelanggan, D.KodeBarang, D.NamaBarang,

penjualan(# D.Harga, D.QTY, D.Total
penjualan(# FROM Barang B, Pelanggan P, JualHeader H, JualDetail
penjualan(# WHERE B.KodeBarang=D.KodeBarang AND
penjualan(# D.NoFaktur=H.Nofaktur AND
penjualan(# H.KodePelanggan=P.KodePelanggan
penjualan(# );
CREATE VIEW

===============================================
Melihat Struktur ViewPenjualan

penjualan=# \d viewjual

View “public.viewjual”
Column        |               Type          |       Modifiers
—————+———————–+————–
nofaktur                | character(5) |

tanggal                   | date |

kodepelanggan   | character(5) |

namapelanggan  | character varying(50) |

kodebarang         | character(5) |

namabarang       | character varying(50) |
harga                     | double precision |
qty                           | smallint |
total                        | double precision |

===============================



DROP
Untuk menghapus Objek, maka perintah yang dapat digunakan adalah :
NAMA                OBJEK       SINTAKS
————————————————————

Database DROP DATABASE <nama_database>

Table DROP TABLE <nama_table>

View DROP VIEW <nama_view>

Index DROP INDEX <nama_index>

Procedure DROP PROCEDURE <nama_procedure>
Trigger DROP TRIGGER <nama_triger>

==================================






___________________________________________________________________________

IMPLEMENTASI DML PADA POSTGRESQL

Data Manipulation Language terdiri dari perintah : SELECT, INSERT, UPDATEdan DELETE. Biasanya perintah DML dilakukan terhadap tabel atau view dalamdatabase MySQL. Adapun penjelasan singkatnya adalah sebagai berikut : 

-          SELECT, merupakan perintah yang digunakan untuk menampilkan data yangberasal dari tabel atau view.
-          INSERT, merupakan perintah yang digunakan untuk memasukkan data ataurecord ke dalam tabel.
-          UPDATE, merupakan perintah yang digunakan untuk memperbarui data ataurecord pada tabel.
-          DELETE, merupakan perintah yang digunakan untuk menghapus data ataurecord yang ada pada tabel.

SELECT

Sintaks Melakukan Select Pada Tabel :
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ AS output_name ] [, ...]
[ FROM from_item [, ...] ]
[ WHERE condition ][ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
[ LIMIT { count | ALL } ]
[ OFFSET start ]
[ FOR { UPDATE | SHARE } [ OF table_name [, ...] ] [ NOWAIT ] [...] ]

where from_item can be one of:

[ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
( select ) [ AS ] alias [ ( column_alias [, ...] ) ]
function_name ( [ argument [, ...] ] ) [ AS ] alias [ ( column_alias [, ...]
| column_definition [, ...] ) ]
function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ]

Tampilkan semua data yang harganya lebih dari 5000000 dari tabel Barang 
penjualan=# SELECT * FROM barang
penjualan-# WHERE harga > 5000000;
KodeBarang
NamaBarang
Harga
Keterangan
B0003
HIS ATI X1950XTX
7000000
VGA Card
B0004
ASUS NVIDIA 7950GX2
6500000
VGA Card

INSERT
Sintaks Melakukan Insert Pada Tabel :

INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
[ RETURNING * | output_expression [ AS output_name ] [, ...] ]

Masukan Data Pada Tabel Barang : 

penjualan=# INSERT INTO Barang VALUES
penjualan-# ('B0001','Intel Dual Core 3.4 GHz',3200000,'Processor'),
penjualan-# ('B0002','AMD Athlon AM2 4000+',4000000,'Processor'),
penjualan-# ('B0003','HIS ATI X1950XTX',7000000,'VGA Card'),
penjualan-# ('B0004','ASUS NVIDIA 7950GX2',6500000,'VGA Card'),
penjualan-# ('B0005','MSI A9N Deluxe AM2',2300000,'Motherboard'),
penjualan-# ('B0006','ASUS P5 WAD2 Deluxe',3000000,'Motherboard'),
penjualan-# ('B0007','Seagate SATA 200 GB',1500000,'Harddisk'),
penjualan-# ('B0008','Maxtor SATA 200 GB',1600000,'Harddisk'),
penjualan-# ('B0009','Kingston DDR2 1 GB',1100000,'Memory'),
penjualan-# ('B0010','Corsair DDR2 1 GB',1300000,'Memory');INSERT 0 10

UPDATE
Sintaks Melakukan Update Pada Tabel :

UPDATE [ ONLY ] table [ [ AS ] alias ]
SET { column = { expression | DEFAULT }
             |( column [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...]
[ FROM fromlist ]
[ WHERE condition ]
[ RETURNING * | output_expression [ AS output_name ] [, ...]

Ubah harga barang yang kodebarangnya = B0001 
penjualan=# UPDATE
barangpenjualan-# SET harga=500000
penjualan-# WHERE kodebarang='B0001';

DELETE
Sintaks Melakukan Delete Pada Tabel :
DELETE FROM [ ONLY ] table [ [ AS ] alias ]
[ USING usinglist ]
[ WHERE condition ]
[ RETURNING * | output_expression [ AS output_name ] [, ...] ]

penjualan=# DELETE FROM Barang
penjualan-# WHERE harga < 3000000;
DELETE 6
penjualan=# SELECT * FROM barang;
kodebarang
namabarang
harga
keterangan
B0002
AMD Athlon AM2 4000+
4000000
ProcessorB0003
B0003
HIS ATI X1950XTX
7000000
VGA CardB0004





___________________________________________________________________________

IMPLEMENTASI DCL PADA POSTGRESQL

            Data Control Language merupakan kontrol keamanan terhadap database dantabelnya, yaitu mengatur hak akses dengan cara mencabut hak akses atau memberi hakakses pada user, tujuannya agar tabel-tabel tertentu hanya bisa diakses oleh orang-orang yang dikehendaki. DCL terdiri dari perintah GRANT dan REVOKE. Adapunpenjelasan singkatnya adalah sebagai berikut :

-          GRANT, merupakan perintah yang digunakan untuk mengizinkan seorang user untuk mengakses tabel pada database tertentu.
-          REVOKE, merupakan perintah yang digunakan untuk mencabut hak aksesseorang user pada tabel dalam database tertentu.

Memberikan Hak Akses

Seorang administrator database biasanya akan melakukan pembatasan hak aksesuser terhadap tabel dalam database. Tujuan akhirnya adalah untuk manajemenkeamanan database. Hak Akses adalah hak-hak yang diberikan server administrator kepada user, antara lain : ALTER, CREATE, DELETE, DROP, UPDATE, INSERT, FILE,PROCESS, RELOAD, REFERENCES,LOAD, SHUTDOWN DAN USAGE. Pemakaiadalah nama user yang akan diberi hak, dengan ketentuan nama pemakai diikuti namadari host diawali tanda @.

Adapun sintaks GRANT adalah sebagai berikut :

GRANT { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER }
            [,...] | ALL [ PRIVILEGES ] }
            ON [ TABLE ] tablename [, ...]
            TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { USAGE | SELECT | UPDATE }
            [,...] | ALL [ PRIVILEGES ] }
            ON SEQUENCE sequencename [, ...]
            TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
            ON DATABASE dbname [, ...]
            TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { EXECUTE | ALL [ PRIVILEGES ] }
            ON FUNCTION funcname ( [ [ argmode ] [ argname ] argtype [, ...] ] ) [, ...]
            TO { username | GROUP groupname | PUBLIC } [, ...] [ WITH GRANT OPTION ]

GRANT { USAGE | ALL [ PRIVILEGES ] }
            ON LANGUAGE langname [, ...]

Mencabut Hak Akses

REVOKE digunakan untuk mencabut hak akses seorang user mengakses tabeldalam database tertentu. Pencabutan hak akses ini dengan klausa REVOKE. Pemakaiadalah nama user yang akan dicabut hak aksesnya, dengan ketentuan nama pemakaidiikuti nama dari host diawali tanda @.

Adapun sintaks REVOKE adalah sebagai berikut :

REVOKE [ GRANT OPTION FOR ]
            { { SELECT | INSERT | UPDATE | DELETE | REFERENCES | TRIGGER }
            [,...] | ALL [ PRIVILEGES ] }
            ON [ TABLE ] tablename [, ...]
            FROM { username | GROUP groupname | PUBLIC } [, ...]
            [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
            { { USAGE | SELECT | UPDATE }
            [,...] | ALL [ PRIVILEGES ] }
            ON SEQUENCE sequencename [, ...]
            FROM { username | GROUP groupname | PUBLIC } [, ...]
            [ CASCADE | RESTRICT ]

REVOKE [ GRANT OPTION FOR ]
            { { CREATE | CONNECT | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
            ON DATABASE dbname [, ...]
            FROM { username | GROUP groupname | PUBLIC } [, ...]
            [ CASCADE | RESTRICT]



___________________________________________________________________________

IMPLEMENTASI FUNGSI AGREGAT PADA DATABASE PENJUALAN

Selain mengambil data dengan kriteria tertentu, sering juga diperlukan berbagaiperhitungan yang bersifat ringkasan. Fungsi agregat merupakan sekumpulan fungsiyang siap dipakai untuk mendapatkan hasil penjumlahan, penghitungan frekuensi,rata-rata, dan lain-lain.

Fungsi Agregat
Keterangan
AVG
Memperoleh Nilai Rata-Rata
COUNT
Menghitung Cacah Data
MAX
Mencari Nilai Terbesar
MIN
Mencari Nilai Terkecil
SUM
Memperoleh Penjumlahan Data



1. AVG

Mencari nilai rata-rata harga barang dari tabel barang 
penjualan=# SELECT AVG(HARGA) AS HARGA_RATA2
penjualan-# FROM BARANG;
PENJUALANharga_rata2-------------3150000
(1 row)

2. COUNT

Mencari jumlah Record dari tabel pelanggan 
penjualan=# SELECT COUNT(*) AS JUMLAH_RECORD
penjualan-# FROM PELANGGAN;
PENJUALANjumlah_record---------------10
(1 row)

3. MAX

Mencari harga tertinggi dari tabel barang 
penjualan=# SELECT MAX(HARGA) AS HARGA_TERTINGGI
penjualan-# FROM BARANG;
PENJUALANharga_tertinggi-----------------7000000
(1 row)

4. MIN

Mencari harga terendah dari tabel barang 
penjualan=# SELECT MIN(HARGA) AS HARGA_TERENDAH
penjualan-# FROM BARANG;
PENJUALANharga_terendah----------------1100000
(1row)

5. SUM

Mencari jumlah penjualan dari masing-masing keterangan/jenis dari tabel barang 
penjualan=# SELECT DISTINCT(KETERANGAN) AS JENIS,
penjualan-# SUM(HARGA) AS HARGA_BARANG
penjualan-# FROM BARANG
penjualan-# GROUP BY KETERANGAN;
PENJUALAN
Jenis
Harga Barang
Harddisk
3100000
Memory
2400000
Motherboard
5300000
Processor
7200000
VGA Card
13500000





Pilih file posgreSQL yang berformat exe. 

  1. Double klik pada file tersebut. Lalu akan ditampilkan gambar setup .klik next
  2. Tentukan direktori induk lokasi penginstalan, biarkan default apa adanya,klik next
  3. Tentukan direktori lokasi penyimpanan data, biarkan default apa adanya:
  4. Selanjutnya akan ditampilkan jendela untuk memasukkan password. Isikan passwordnya dengan “admin” (tanpa tanda kutip ganda),klik next 
  5. Pada jendela Setup Port, biarkan secara default ditentukan port digunakan yaitu 5432, klik next 
  6. Lalu akan ditampilkan jendela Setup Advanced Option, dan biarkan apa adanya lalu klik next 
  7. Lalu akan ditampilkan jendela Ready to Install,  klik next 
  8. Proses instalasi berlangsung, dan kemajuan proses ditunjukkan oleh sebuah  posgress bar:
  9. Setelah selesai proses instalasi Uncheck (hilangkan centang) pada kotak Launch Stak Builder pada gambag dibawah ini,lalu klik Finish untuk menyelesaikan instalasi PostgreSQL, sebab jika diberi tanda check maka proses instalasi akan dilanjutkan dengan mendownload beberapa program pendukung seperti pendukung koneksi dengan basis data, dan sebagainya dan itu tidak perlu dilakukan.