Kamis, 06 Januari 2011

Model ER

Konsep Model ER
Model ER adalah kumpulan konsep dari entitas, atribut, relationship serta konstrain lainnya yang menggambar kan struktur basis data dan transaksi pada basis data.
1.  Entitas : Objek dalam bentuk fisik maupun konsep yang dapat dibedakan dengan objek lainnya.
2.  Atribut : karakteristik atau properti dari suatu entitas.
3.  Relationship : Hubungan yang terjadi antara satu entitas atau lebih.

MAHASISWA -------- MENGAKSES -------- DATA
 

       Diagram ER untuk relationship MENGAKSES
Hasil dari relasi :
a.  One To One ( 1 : 1 )
b.  One To Many ( 1 : M )
c.  Many To One ( M : 1 )
d.  Many To Many ( M : M)

Penjelasan dari Relasi :
   a.  One To One ( 1 : 1 )
      -    Satu Mahasiswa Mengakses Satu  Data
      -    Satu Data Diakses Satu Mahasiswa

b.  One To Many ( 1 : M )
     -     Satu Mahasiswa Mengakses Semua  Data
     -     Semua Data Diakses Satu Mahasiswa

c.  Many To One ( M : 1 )
  -    Semua Mahasiswa Mengakses Satu Data
  - Satu Data Diakses Semua Mahasiswa

   d.  Many To Many ( M : M )
    - Semua Mahasiswa Mengakses Semua Data
    - Semua Data Diakses Semua Mahasiswa

Senin, 03 Januari 2011

PL SQL DENGAN SQL PLUS

PENDAHULUAN PL SQL
PL/SQL (Procedural Language/Structured Query Language) merupakan sebuah penggabungan antara bahasa pemrograman prosedural (PL) dan SQL syntax.
PL/SQL adalah fasilitas yang disediakan Oracle sehingga pengguna dapat memanfaatkan konsep pemrograman. Dalam PL/SQL dapat digunakan perintah untuk memanipulasi data yang ada dalam database Oracle. PL/SQL membentuk pemrograman terstruktur dalam memproses data.

Beberapa kelebihan PL/SQL dalam database Oracle :
  • PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses didalam server.
  • Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna.
  • PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan
  • program aplikasi.

Apa Itu PL/SQL Package?
Package adalah sebuah schema object yang mengelompokkan PL/SQL types, items, dan subprograms, yang terkait secara logikal. Packages biasanya memiliki dua bagian, sebuah specification dan sebuah body, meskipun kadangkala body tersebut tidak diperlukan. Specification (atau spec) merupakan antarmuka terhadap aplikasi-aplikasi kita; ia mendeklarasikan types, variables, constants, exceptions, cursors, dan subprograms yang tersedia untuk digunakan. Body secara penuh mendefinisikan cursors dan subprograms, dan juga mengimplementasikan spec.
Seperti ditunjukkan oleh Gambar 9-1, kita dapat memikirkan sebuah spec sebagai sebuah antarmuka operasional dan body sebagai sebuah “kotak hitam (black box)”. Kita dapat men-debug, meningkatkan, atau menimpa sebuah package body tanpa mengubah antarmuka (package spec) ke package tersebut.

Contoh Sebuah PL/SQL Package
Dalam contoh di bawah ini, kita mem-package sebuah record type, sebuah cursor, dan dua procedure kepegawaian. Perlu diingat bahwa procedure hire_employee menggunakan database sequence empno_seq dan function SYSDATE untuk menambahkan sebuah employee number baru dan hire date.
CREATE OR REPLACE PACKAGE emp_actions AS -- spec
TYPE EmpRecTyp IS RECORD (emp_id INT, salary REAL);
CURSOR desc_salary RETURN EmpRecTyp;
PROCEDURE hire_employee (
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER);
PROCEDURE fire_employee (emp_id NUMBER);
END emp_actions;
CREATE OR REPLACE PACKAGE BODY emp_actions AS -- body
CURSOR desc_salary RETURN EmpRecTyp IS
SELECT empno, sal FROM emp ORDER BY sal DESC;
PROCEDURE hire_employee (
ename VARCHAR2,
job VARCHAR2,
mgr NUMBER,
sal NUMBER,
comm NUMBER,
deptno NUMBER) IS
BEGIN
  INSERT INTO emp VALUES (empno_seq.NEXTVAL, ename, job, mgr,
  SYSDATE, sal, comm, deptno);
END hire_employee;
PROCEDURE fire_employee (emp_id NUMBER) IS
BEGIN
  DELETE FROM emp WHERE empno = emp_id;
END fire_employee;
END emp_actions;
Hanya deklarasi di dalam package yang terlihat dan dapat dikses terhadap aplikasi. Detil implementasi di dalam package body disembunyikan dan tidak dapat diakses. Jadi, kita dapat mengubah body (implementation) tanpa harus meng-compile ulang program-program yang memanggilnya.

Keuntungan-keuntungan dari PL/SQL Packages
Packages menawarkan beberapa keuntungan: modularitas, desain aplikasi yang lebih mudah, penyembunyian informasi, tambahan fungsionalitas, dan performa yang lebih baik.
Modularity
Packages mengijinkan kita untuk mengenkapsulasi secara logikal types, items, dan subprograms yang berhubungan di dalam sebuah PL/SQL module yang memiliki nama. Setiap package mudah dipahami, dan antarmuka antara packages adalah sederhana, jelas, dan didefinisikan dengan baik. Hal ini membantu pembangunan aplikasi.
Easier Application Design
Ketika mendesain sebuah aplikasi, seluruh yang kita butuhkan awalnya adalah informasi antarmuka di dalam package specs tersebut. Kita dapat mengkodekan dan meng-compile sebuah spec tanpa body-nya. Kemudian, stored subprograms yang mereferensi kepada package tersebut dapat di-compile juga. Kita tidak perlu mendefinisikan package bodies secara penuh sampai kita siap untuk menyelesaikan aplikasi.
Information Hiding
Dengan packages, kita dapat menentukan types, items, dan subprograms mana saja yang bersifat public (terlihat dan dapat diakses) atau yang private (tersembunyi dan tidak dapat diakses). Sebagai contoh, jika sebuah package mengandung empat subprograms, yang tiga mungkin public dan yang satu private. Package menyembunyikan implementasi dari private subprogram sehingga hanya package tersebut (bukan aplikasi kita) yang terpengaruh jika implementasi diubah. Hal ini memudahkan pemeliharaan dan peningkatan. Juga, dengan menyembunyikan detil implementasi dari pengguna, kita dapat melindungi integritas dari package tersebut.
Added Functionality
Variable-variable dan cursor-cursor public ter-package tetap ada selama satu session. Sehingga, mereka dapat digunakan secara bersama-sama oleh subprograms yang berjalan dalam environment tersebut. Juga, mereka memperbolehkan kita memelihara data melalui transaksi-transaksi tanpa harus menyimpannya di dalam database.
Better Performance
Ketika kita memanggil sebuah subprogram terpackage untuk pertama kali, seluruh package di-load ke memory. Sehingga, pemanggilan-pemanggilan berikutnya terhadap subprogram-subprogram terkait dengan di dalam package tersebut tidak memerlukan disk I/O. Juga, packages berhenti mengaitkan ketergantungan dan dengan demikian tidak memerlukan re-compile ulang yang tidak perlu. Sebagai contoh, jika kita mengubah implementasi dari sebuah function ter-package, Oracle tidak perlu meng-compile ulang subprogram-subprogram yang memanggilnya karena mereka tidak bergantung kepada package body.

STRUKTUR PL/SQL

Struktur PL/SQL mirip dengan struktur bahasa pascal atau delphi yang menggunakan struktur blok, sehingga akan mempermudah pengertian dalam pemrograman dengan PL/SQL. Struktur Blok berisi perintah SQL dengan kondisi yang berbeda. Perintah PL/SQL dapat menangani kesalahan saat dijalankan. Setiap pengetikan dengan menggunakan PL/SQL dalam SQL*Plus selalu diakhiri dengan tanda /(slash). Sintaks penggunaan PL/SQL adalah sebagai berikut :

Declare
   Begin
      Exception
End
Struktur diatas dapat dijelaskan sebagai berikut :

1. Bagian Judul (Header)
Bagian ini hanya digunakan jika PL/SQL diberikan nama,misalnya untuk prosedur atau fungsi. Bagian ini berisi nama blok,daftar parameter, dan pengembalian hasil (return) jika blok adalahfungsi.
2. Bagian Deklarasi (declaration)
Bagian ini untuk membuat deklarasi mengenai semua variable dan konstanta yang direferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini dimulai dengan perintah DECLARE. Jika tidak ada variable atau konstanta yang ingin dideklarasikan bagian ini boleh dihilangkan, bersifat optional.
3. Bagian Eksekusi (Execution).
Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis. Bagian eksekusi ini harus dimulai dengan perintah BEGIN.
4. Bagian Perkecualian (Exception)
Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada waktu eksekusi program PL/SQL, bersifat optional. Jika program tidak memuat cara menangani kesalahan, bagian ini boleh dihilangkan.Setiap pernyataan PL/SQL harus diakhiri dengan tanda titik koma(;) dan semua program PL/SQL harus diakhiri dengan perintah END.

Bentuk Umum Struktur PL/SQL

DECLARE
            variabel tipe_data;
            konstanta CONSTANT tipe_data := nilai;
            ...
BEGIN
            statement_1;
            statement_2;
            ...
EXCEPTION
            WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;
            ...
END;

Contoh Program (tanpa exception)

SQL> SET SERVEROUTPUT ON
SQL>DECLARE
v1  NUMBER(3);
BEGIN
v1 := 3;
DBMS_OUTPUT.PUT_LINE('v1= ' || v1);
END;
/
Contoh Program (dengan exception)
SQL>SET SERVEROUTPUT ON
SQL>DECLARE
X Integer;
BEGIN
X := ‘Belajar Oracle’;
DBMS_OUTPUT.PUT_LINE( TO_CHAR(X) );
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE (‘Kesalahan pada pengisian nilai’);
END;
/

DBMS_OUTPUT merupakan paket yang disediakan oleh Oracle PL / SQL dan PUT_LINE merupakan salah satu prosedur yang dikemas. Menampilkan nilai-nilai pada SQL Plus * terminal yang harus diaktifkan dengan SERVEROUTPUT SET ON terlebih dahulu. Untuk menjalankan kode sampel ini, login ke SQL * Plus. PL / SQL blok diakhiri dengan tanda garis miring / atau garis byitself.



PENDAHULUAN SQL PLUS
SQL adalah kependekan dari Structured Query Language, digunakan untuk berkomunikasi dengan Oracle sehingga kita dapat memerintahkan informasi apa yang ingin kita SELECT, INSERT, UPDATE atau DELETE. Keempat kata yang saya tulis dengan huruf besar tersebut merupakan kata inti yang digunakan untuk memerintahkan Oracle. Apa sih SQL*Plus itu dan apa perannya dalam database Oracle? Secara sederhana kita dapat mengatakan bahwa SQL*Plus itu seperti assisten pribadi kita saat bekerja dengan Oracle. Melalui SQ*Plus inilah kita memberikan perintah kepada Oracle dan kita dapat melihat hasilnya.


Keistimewaan sql plus
  • menerima tambahan masukan perintah
  • menerima input SQL dari file file
  • tersedia line ditor untuk memidifikasi perintah SQL
  • terdapat seting untuk penanganan yang berhubungan dengan lingkungan
  • hasil query d buat dalam sebuah laporn standart
  • mengakses data base secara lokal dan remote

SQL *PLUS dipergunakan untuk mengakses Oracle Database Server. Untuk mengakses server dibuat sebuah service yang mengarahkan client ke server terlebih dahulu (Database Alias). Tahapan untuk membuat service tersebut sebagai berikut :
1. Pada dialog diatas diberi service name TPRAKTIKUM. Klik next
2. Pilih protocol yang menghubungkan antara client dengan server. Pada kesempatan ini untuk menghunbungkan client ke server mempergunakan protocol TCP/IP. Berikutnya klik Next.
3. Pada field Host Name masukkan nama host name atau alamat IP address server ORACLE, misalnya nt5. Klik Next
4. Pada menu field Database SID, pada layar System IDentifier, masukkan nama database SID, misalnya lab4. Berikunya klik Next.
5. Untuk mencoba service name yang sudah dibuat, perlu dilakukan testing. Klik tombol Test Service, dan akan menuju layar testing.
6. Pada layar Conection Test masukkan username dan password. Silahkan masukkan Username scott dan Password tiger, klik tombol test, maka akan ditampilkan respon server. Jika sukses akan ada komentar ….successful..
jika gagal akan muncul komentar bahwa service yang dibuat gagal.
Setelah Service Name dibuat, kini masuk kedalam SQL *PLUS untuk mengakses database server.
Buka SQL *PLUS dari menu Start􀃆Program􀃆Oralce-OraHome81􀃆
Aplication Development􀃆SQL PLUS.
Akan muncul dialog SQL plus sebagai berikut :
Masukkan pada User Name system, password manager dan Host String dengan service name yang sudah dibuat tadi (TPRAKTIKUM).
Jika Login berhasil maka akan muncul Oracle SQL *PLUS sebagai berikut :
TABLESPACE
Untuk menyimpan obyek-obyek database dibutuhkan suatu ruang memori yang disebut TABLESPACE. Untuk mengakses tablespace dibutuhkan sebuah account user. Berikut ini perintah SQL untuk membuat tablespace, user dan perintah untuk manipulasi tabel.
1. Melihat tablespace
select * from user_free_space;
2. Membuat tablespace
SQL>Create tablespace nama-tablespace datafile ‘nama-datafile.dat’ size 1M
autoextend on next 500K maxsize 2M;
3. Mengubah ukuran tablespace
SQL>alter database datafile ‘nama-datafile.dat’ resize 2M;
4. Menambah ukuran tablespace dengan cara menambahkan data file baru
SQL>alter tablespace dataku add datafile ‘nama-datafile.dat’ size 2M;
5. Menghapus table space
SQL>drop tablespace nama-tablespace including contents;
Setelah Tablespace siap, maka langkah selanjutnya membuat account baru.
Account ini akan anda pergunakan selama praktikum. Account yang sudah ada ketika instalasi selesai adalah SYS, SYSTEM dan SCOTT. Untuk membuat account baru kita mempergunakan user SYS dan SYSTEM. Pergunakan tablespace yang tadi telah anda buat untuk menyimpan data anda selama praktikum.
1. Membuat user baru dan dengan tablespace yang dipakai misalnya dtpraktek.
SQL>create user nama_user identified by password-user default
tablespace dtpraktek;
Parameter nama_user adalah nama login, dan password-user adalah password user yang dipilih. Misalnya dipilih untuk nama_user user01.
2. Berikan hak akses user pada database. Misalnya hak akses grant dan resource.
SQL> grant connect to user01;
SQL> grant resource to user01;
3. Langkah berikutnya, lakukan sambungan dengan server dengan mempergunakan user_name yang sudah dibuat tadi.
SQL> connect user01
Enter password: ******
Connected.
4. Saat ini sudah tersambung dengan server dengan mempergunakan user01.
Buat tabel mahasiswa yang memiliki struktur nim varchar(5), nama
varchar(25), alamat varcahr(30).
SQL> create table mahasiswa (nim varchar(5), nama varchar(25), alamat
varchar(30));
5. Untuk melihat tabel yang ada dalam tablespace mempergunakan perintah :
SQL> select * from tab;
6. Untuk melihat struktur tabel dapat dilakukan dengan mempergunakan
perintah :
SQL>describe mahasiswa;
7. Perintah alter berguna untuk melakukan perubahan tabel diantaranya merubah tipe field, menambah field baru dan merubah nama tabel.
Merubah tipe field tabel :
SQL>alter table mahasiswa modify (nim number(5));
Menambah field tabel :
SQL>alter table mahasiswa add (usia number(2));
Mengganti nama tabel :
SQL>alter table mahasiswa rename to mhs;
8. Untuk menambahkan data kedalam tabel, pergunakan perintah insert
SQL>insert into mahasiswa values(1,’Sumanto’,’Sleman’);
9. Data yang sudah disimpan dalam tabel dapat diedit dengan memperguanakan perintah update.
SQL>update mahasiswa set nama = ‘Sumanto’ where nim=1;
10. Untuk keperluan penghapusan data, pergunakan perintah :
SQL>delete from mahasiswa where nim=1;
CONSTRAINT
Constraint (konstrain) adalah aturan yang diberikan pada suatu tabel supaya data yang dimasukkan lebih terjamin validitasnya.
1. Memberi konstrain pada saat membuat tabel :
SQL>create table mahasiswa(nim char(5) constraint pnim primary key, nama
char(20) constraint nnama not null, alamat char(30));
2. Memberi konstrain pada tabel yang sudah ada :
SQL>alter table mahasiswa add constraint pnim primary key (nim);
SQL>alter table mahasiswa modify (nama char(20) constraint nnama not null);
3. Menghapus konstrain :
SQL>alter table mahasiswa drop constraint nnama;
ORDER BY
Klausa ORDER BY digunakan untuk mengurutkan data yang di-query. Klausa ORDER BY diikuti dengan nama kolom atau kolom alias kemudian diikuti klausa jenis urutan yang kita inginkan. Jenis urutan bisa ASC (ascending) atau DESC (descending). Sebagai ilustrasi, tampilkan semua data dengan cara diurutkan ascending berdasarkan nama mahasiswa.
SQL> select * from mahasiswa order by nama;
SQL> select * from mahasiswa order by nama desc;
WHERE
Klausa LIKE WHERE digunakan untuk membatasi query menurut criteria tertentu. Kriteria ini didefinisikan menggunakan bentuk perbandingan. Sebagai ilustrasi, tampilkan data mahasiswa yang berasal dari Jogjakarta.
SQL> select * from mahasiswa where alamat = ‘Jogjakarta’;
LIKE
Klausa LIKE digunakan untuk membatasi query menurut nilai tertentu. Nilai ini merupakan sebagian dari nilai suatu field. Sebagai ilustrasi, akan ditampilkan data mahasiswa yang memiliki nama yang nama akhirnya mengandung huruf “ni”.
SQL> select * from mahasiswa where nama like ‘%ni’;

Minggu, 02 Januari 2011

PostgreSQL

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.

Pengguna PostgreSQL
  •  Yahoo! untuk analisa prilaku pengguna web, menyimpan 2 petabyte data dan mengklaim sebagai gudang data terbesar. Menggunakan versi PostgreSQL yang dimodifikasi, dengan engine penyimpanan berbasis kolom yang sepenuhnya berbeda.
  • MySpace, situs jejaring sosial populer, menggunakan basisdata Aster nCluster untuk gudang data, dibangun diatas PostgreSQL tanpa modifikasi.
  • OpenStreetMap, proyek kolaboratif untuk menciptakan peta dunia yang bebas sunting.
  •  Afilias, register domain untuk .org, .info, dan sebagainya.
  •  Sony Online multiplayer online game.
  •  BASF, platform belanja untuk portal agribisnisnya.
  •  hi5.com portal jejaring sosial.
  •  Skype aplikasi VoIP, basisdata pusat bisnis.
  •  Sun xVM, perangkat lunak virtualisasi dan otomasi datacenter milik Sun

DB2

DB2 adalah produk Sistem Manajemen Hubungan Database dari IBM atau sekarang yang populer disebut Data Server yang dimana merupakan Perangkat Lunak Manajemen Informasi. Kebanyakan DB2 disebut juga sebagai DB2 Enterprise Server Edition atau top of the line DB2 DAta Warehouse Edition (DB2 DWE) yang berjalan pada Unix, Windows dan Linux Server.
IBM DB2 Express-C merupakan edisi perangkat lunak sistem manajemen basis data keluarga IBM DB2 yang dapat diunduh, digunakan, serta diredistribusikan secara gratis. Versi gratis ini menawarkan baik fitur manajemen basis data relasional serta basisdata berbasis XML

Sejarah
Edisi DB2 Express-C pertama kali dibuat untuk rilis IBM DB2 versi 8.2. Kemudian disertai pula pada rilis-rilis berikutnya seperti versi 9.1 (Viper), 9.5 (Viper 2), serta 9.7 (Cobra). Implementasi atas fitur XML murni (InggrispureXML) diperkenalkan pada versi beta dari DB2 9.x.

Keterbatasan
Tidak seperti halnya edisi "express" (gratis) yang ditawarkan oleh kompetitor lain seperti Oracle, ataupun Microsoft, IBM tidak membatasi jumlah serta ukuran data yang disimpan pada basisdata, demikian pula halnya dengan jumlah pengguna yang terkoneksi. IBM juga menyediakan baik versi 32bit maupun 64bit meskipun pada beberapa platform tertentu hanya tersedia versi 64bit saja. Koneksi dapat dilakukan melalui protokol TCP/IP V4 dan V6 atau named pipe.
Keterbatasan yang ada pada versi gratis IBM DB2 Express-C adalah pada penggunaan memori yang dibatasi maksimum hingga 2GB, serta hanya dapat memanfaatkan CPUmaksimum hingga 2 CPU. Namun demikan keterbatasan ini tidak berarti DB2 Express C hanya dapat dijalankan pada mesin-mesin tua, perangkat lunak ini dapat diinstalasi dan dijalankan pada mesin terbaru sekalipun, namun dengan keterbatasan seperti yang disebutkan di atas. Hanya saja umumnya, hal ini tidak menimbulkan masalah yang berarti karena keterbatasan tersebut hanya berlaku di sisi perangkat lunak basisdata, dalam arti ketersediaan sumber daya lainnya yang tersisa dapat dimanfaatkan oleh aplikasi lain, misalnya aplikasi server berbasis java misalnya: Sun Java System Application Server.
Fitur-fitur yang terdapat pada versi Express-C hampir sama seperti pada edisi edisi DB2 Express (produk berbayar) hanya dengan batasan jumlah CPU serta memori yang lebih kecil. Lisensi yang diimplementasikan pada DB2 membatasi penggunaan perangkat lunak ini pada lingkungan yang membutuhkan ketersediaan tinggi (Inggris: high availability environments). IBM juga tidak menawarkan perbaikan/fixpack atas versi lama dari DB2 Express C untuk diunduh secara gratis, namun perangkat lunak ini dapat terus digunakan ataupun diinstalasi jika pengguna masih memilikinya.