___________________________________________________________________________
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
- 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.
- 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.
- 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.
- PostgreSQL menyediakan hampir seluruh fitur-fitur database seperti yang terdapat dalam produk database komersial pada umumnya.
- PostgreSQL pun memiliki tipe data geometri (seperti titik, garis, lingkaran, poligon) yang mungkin berguna bagi aplikasi ilmiah tertentu
- PostgreSQL memberikan kita kemampuan mendefinisikan sebuah field sebagai array.
- PostgreSQL memiliki hampir semua fasilitas standar yang biasanya diinginkan: view (tabel virtual), trigger, subselek, stored procedure (dalam beberapa bahasa), dan foreign key constraint
- PostgreSQL juga memiliki apa yang disebut rule, yaitu tindakan custom yang bisa kita definisikan dieksekusi saat sebuah tabel di-INSERT, UPDATE, atau DELETE
- Postgres juga mempunayai kemampuan untuk membuat konektifitas dengan database lain seperti pgdump, Interbase, pgaccess dan hampir semua database pada Linux.
- Kemampuannya menampung data spasial, sehingga ia bisa digunakan dalam pembuatan situs yang berbasis Web GIS untuk pemetaan dan sebagainya.
- 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 mendukung banyak jenis bahasa pemrograman, antara lain: SQL, C, C++, Java, PHP, etc.
- 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.
- Kurang begitu populer dan cocok bekerja di lingkungan web jika dibandingkan dengan mysql.
- Kurang fokus dalam hal kelangsingan dan kecepatan.
- Arsitektur dengan multiproses ini sulit diterapkan ke Windows, sebab Windows amat thread-oriented.
- PostgreSQL sendiri saat ini bisa dijalankan di Windows, tapi melalui lapisan emulasi Cygwin.
- Kurang unggul dalam hal ketersediaan fungsi built-in.
- Replikasi di PostgreSQL sendiri belum disertakan dalam distribusi standarnya.
- 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.
- Double klik pada file tersebut. Lalu akan ditampilkan gambar setup .klik next
- Tentukan direktori induk lokasi penginstalan, biarkan default apa adanya,klik next
- Tentukan direktori lokasi penyimpanan data, biarkan default apa adanya:
- Selanjutnya akan ditampilkan jendela untuk memasukkan password. Isikan passwordnya dengan “admin” (tanpa tanda kutip ganda),klik next
- Pada jendela Setup Port, biarkan secara default ditentukan port digunakan yaitu 5432, klik next
- Lalu akan ditampilkan jendela Setup Advanced Option, dan biarkan apa adanya lalu klik next
- Lalu akan ditampilkan jendela Ready to Install, klik next
- Proses instalasi berlangsung, dan kemajuan proses ditunjukkan oleh sebuah posgress bar:
- 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.