Syntax SQL, Inner join, Left join, Right join, dan Full join

11 December 2012 14:53:01 Dibaca : 161

Syntax SQL


INNER JOIN adalah tipe join yang akan kita bahas pertama. Tipe join ini akan mengambil semua row dari table asal dan table tujuan dengan kondisi nilai key yang terkait saja - jika ada, dan  jika tidak maka row tersebut tidak akan muncul. 
 
Kalau tidak terdapat kondisi key terkait antar table, maka semua row dari kedua table dikombinasikan.
Syntax dari INNER JOIN adalah sebagai berikut :
table_reference [INNER] JOIN table_factor [join_condition]

Terlihat bahwa keyword INNER boleh digunakan secara eksplisit atau tidak. Jika tidak digunakan maka konstruksi JOIN tanpa keyword lain dianggap sebagai INNER JOIN.

INNER JOIN Antar Table dengan Kondisi ("ms_cabang" dan "ms_kota" dengan key "kode_kota")

SELECT * FROM ms_cabang INNER JOIN ms_kota ON ms_cabang.kode_kota = ms_kota.kode_kota
Hasil terlihat seperti gambar berikut ini. Disini table sumber adalah ms_cabang (left) mencari referensi row lain dari table ms_kota (right) dengan kondisi nilai kode_kota diantara kedua table tersebut sama. Kondisi ini menggunakan keyword ON
Dengan panduan gambar, kita lihat bahwa tiap row dari ms_cabang akan dicari padanan row-nya di ms_kota :
  • untuk row pertama kita memiliki kode_kota dengan nilai "KOTA-003", ini akan dicari referensinya ke table ms_kota untuk nilai yang sama dan kita dapatkan row dengan nilai nama_kota "Lhokseumawe" adalah padanannya.
  • untuk row kedua kita memiliki kode_kota dengan nilai "KOTA-083", ini akan dicari referensinya ke table ms_kota untuk nilai yang sama dan kita dapatkan row dengan nilai nama_kota "Bau-bau" adalah padanannya.
  • demikian seterusnya.
Sekarang mari kita coba hapus referensi untuk "Lhokseumawe" dari table ms_kota :
DELETE FROM ms_kota WHERE nama_kota = 'Lhokseumawe';
 
Setelah itu coba jalankan kembali perintah JOIN di atas, Anda akan mendapatkan hasil JOIN tanpa referensi row "Lhokseumawe". Jadi INNER JOIN dengan kondisi mengharuskan row dari tiap table memiliki nilai yang sama untuk column referensinya (dalam hal ini kode_kota).
Kembalikan lagi row referensi yang kita hapus tadi dengan perintah INSERT berikut ini :
INSERT INTO `ms_kota` VALUES ('KOTA-003','Lhokseumawe','P33'
 
 
 

NORMALISASI DATABASE

20 November 2012 17:03:14 Dibaca : 154

DEFINISI

       Normalisasi adalah suatu teknik untuk mengorganisasi data kedalam tabel-tabel untuk memenuhi kebutuhan pemakai didalam suatu organisasi. Normalisasi bisa juga disebut Well Structure Relation atau proses pengelompokan atribut-atribut dari suatu relasi.

      Ada beberapa bentuk dalam normalisasi, yaitu Unnormalized Form, First Normal Form (1NF), Second Normal Form (2NF), Third Normal Form (3NF) dan Boyce-Codd Normal Form (BNF). Disini saya akan member contoh bentuk-bentuk normalisasi pada suatu tabel.

 

Tujuan dari normalisasi

  • Untuk menghilangkan kerangkapan data
  • Untuk mengurangi kompleksitas
  • Untuk mempermudah pemodifikasian data

 

Proses Normalisasi

   Proses normalisasi model data dapat diringkas sebagai berikut :

– Menemukan entitas-entitas utama dalam model data

– Menemukan hubungan antara setiap entitas

– Menentukan atribut yang dimiliki masingmasing Entitas

 

Tahapan Normalisasi

1. Bentuk Tidak Normal : Menghilangkan perulangan group

2. Bentuk Normal Pertama (1NF) : Menghilangkan ketergantungan sebagian

3. Bentuk Normal Kedua (2NF) :   Menghilangkan ketergantungan transitif

4. Bentuk Normal Ketiga (3NF) :  Menghilangkan anomali-anomali hasil dari

                                                  Ketergantungan fungsional

5. Bentuk Normal Boyce-Codd (BCNF) : Menghilangkan Ketergantungan

                                                   Multivalue

6. Bentuk Normal Keempat (4NF) : Menghilangkan anomali-anomali yang

                                                   tersisa

         7. Bentuk Normal Kelima

 

Langkah-Langkah Normalisasi

Normalisasi model data dilakukan dengan mengikuti langkah-langkah sederhana, sebagai berikut :

 

  • Bentuk First Normal Form (1NF)


       Suatu relasi dikatakan sudah memenuhi bentuk normal kesatu bila setiap data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu nilai data Suatu relasi berada dalam bentuk normal.

 

  • Bentuk Second Normal Form (2NF)

Tabel 1a

 

 

 

Tabel 2b


Tabel 3c

      Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kedua bila relasi tersebut sudah memenuhi bentuk Normal Kesatu, dan atribut yang bukan key sudah tergantung penuh Terhadap keynya.

 

  • Bentuk Third Normal Form (3NF)

 

Tabel 3a

 

Tabel 3b

 

     Suatu relasi dikatakan sudah memenuhi Bentuk Normal ketiga Bila relasi tersebut sudah memenuhi bentuk Normal kedua Dan atribut yang bukan key tidak tergantung transitif terhadap Keynya.

 

 

Perintah / Bahasa Basis Data

03 October 2012 18:22:41 Dibaca : 83

DATA DEFINITION LANGUAGE (DDL)


      DDL adalah bahasa formal yang dipergunakan oleh programer untuk merumuskan muatan dan struktur data base.DDL menjelaskan setiap unsur data yang terdapat dalam data base sebelum unsur data tersebut diterjemahkan kedalam bentuk yang diperlukan program aplikasi.

  • Contoh perintah DDL yang digunakan pada MySQL :
  • Pembuatan (CREATE)
  • CREATE DATABASE
  • CREATE FUNCTION
  • CREATE INDEX
  • CREATE PROCEDURE
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE VIEW
  • Perubahan (ALTER & RENAME)
  • ALTER DATABASE
  • ALTER FUNCTION
  • ALTER PROCEDURE
  • ALTER TABLE
  • ALTER VIEW
  • RENAME TABLE
  • Penghapusan (DROP)
  • DROP DATABASE
  • DROP FUNCTION
  • DROP INDEX
  • DROP PROCEDURE
  • DROP TABLE
  • DROP TRIGGER
  • DROP VIEW
  • TRUNCATE  : menghapus semua catatan dari tabel, termasuk semua ruang yang dialokasikan     untuk catatan dihapus
  • COMMENT   : menambahkan komentar pada data kamus
  • RENAME     : mengubah nama tabel


DATA MANIPULATION LANGUAGE (DML)


      DML adalah suatu bahasa yang terkait dengan sistem manajemen database yang digunakan oleh pengguna dan programer untuk memanifulasi data dalam data base.bahasa ini memuat perintah-perintah sehingga pengguna dan programer dapat menarik data dari data base untuk memenuhi kebutuhan informasi dan mengembangkan berbagai aplikasi.

  • Contoh perintah DML:
  • Insert : Merupakan perintah yang dilakukan untuk melakukan penyisipan.  Umunya penyisipan dilakukan langsung ke base table yaitu tabel utama,tabel dasar atau fisik. Ada dua jenis penyisipan yaitu :
  • Menambah anggota relasi langsung lewat base tables
  • Menambah suatu relasi melalui suatu views sehingga mungkin menghasilkan penambahan lebih dari satu baris pada base tables
  • Update Merupakan perintah yang digunakan untukmengubah data yang memenuhikondisitertentu yang dideskripsikandengan  where.Adaduajenis update yaitu : 
  • Memodifikasianggotalangsungdari base tables.
  • Memodifikasianggotarelasimelaluisuatu views.
  • Delete: Merupakanperintah yang digunakan untuk menghapus data yang memenuhi kondisi tertentu yang dideskripsikan dengan:
  • Menghapus anggota langsung dari base tables.
  • Menghapus anggota relasi melalui suatu views.
  • Select: Merupakan perintah yang digunakan untuk melakukan operasi seleksi yang dinyatakan dalam bentuk suatu query dalam bahasa tertentu dengan operasi model data relasional.
  • Views: Merupakan perintah yang digunakan untuk memudahkan proses untuk dapat membuat tabel virtual atau maya yang dapat merupakan kombinasi berbagai base tables yang dihubungkan dengan kesamaan kondisi tertentu.View adalah tabel semu yang berarti secara fisik data tidak tersimpan dalam basis data,tetapi secara lojik dapat berfungsi seolah-olah tabel.Pada dasarnya tabel virtual adalah :
  • Merupakan hasil proses seleksi yang mewakili kacamata user tertentu.
  • Dapat digunakan untuk melakukan retrieval,insert,delete dan update


DATA CONTROL LANGUANGE (DCL)


      Perintah-perintah yang termasukdalam data control language adalah:

 

  • Commit: Merupakan perintah yang digunakan untuk memindahkan transaksi dari memory pemrosesan ke database atau menyimpan secara permanen perubahan-perubahan kedalam database.
  • Rollback: Merupakan perintah yang digunakan untuk membatalkan transaksi yang belum di commit atau membatalkan perubahan-perubahan terakhir dari perintah commit/rollback terakhir.
  • Grant: Merupakan perintah yang digunakan untuk member hak akses bagi seorang user terhadap suatu tabel atau view.
  • Revoke: Merupakan perintah yang digunakan untuk menghapus hak akses bagi seorang user terhadap suatu tabel atau view.

DATA QUERY LANGUAGE (DQL)


      DQL sering disebut juga dengan statement ritrieval, yang digunakan untuk mengambil data pada suatu tabel dan mengatur bagaimana data tersebut ditampilkan dalam aplikasi. Reservet word SELECT merupakan Verb yang paling umum digunakan dalam DQL (bahkan dalam seluruh statement SQL). Reservet word Line dalam kategori ini yang umum digunakan adalah WHERE,ORDER BY, GROUP BY, DAN HAFING. Reservet word ini biasanya digunakan bersama dengan kategori lain dalam statement SQL.

Tipe - tipe Data pada Database Manajemen System

19 September 2012 09:35:07 Dibaca : 109

Tipe-tipe data pada Database Manajemen System yaitu :

 

  • MySQL :

Ø      TINYINT[(M)] [UNSIGNED] [ZEROFILL]

Integer yang sangat kecil jangkauan nilainya, yaitu -128 hingga 127. Jangkauan unsigned adalah 0 hingga 255.

Ø      SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

Integer yang kecil jangkauan nilainya, yaitu -32768 hingga 32767. Jangkauan unsigned adalah 0 hinga 65535.

Ø      MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

Integer tingkat menengah. Jangkauan nilainya adalah -8388608 hingga 8388607. Jangkauan unsigned adalah 0 hingga 16777215.

Ø      INT[(M)] [UNSIGNED] [ZEROFILL]

Integer yang berukuran normal. Jangkauan nilainya adalah -2147483648 hingga 2147483647. Jangkauan unsigned adalah 0 hingga 4294967295.

Ø      INTEGER[(M)] [UNSIGNED] [ZEROFILL]

Sama dengan INT.

Ø      BIGINT[(M)] [UNSIGNED] [ZEROFILL]

Integer berukuran besar. Jangkauan nilainya adalah -9223372036854775808 hingga 9223372036854775807. Jangkauan unsigned adalah 0 hingga 18446744073709551615.

Ø      FLOAT(precision) [ZEROFILL]

Bilangan floating-point. Tidak dapat bersifat unsigned. Nilai atribut precision adalah <=24 untuk bilangan floating-point presisi tunggal dan di antara 25 dan 53 untuk bilangan floating-point presisi ganda.

Ø      FLOAT[(M,D)] [ZEROFILL]

Bilangan floating-point presisi tunggal. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -3.402823466E+38 hingga -1.175494351E-38 untuk nilai negatif, 0, and 1.175494351E-38 hingga 3.402823466E+38 untuk nilai positif.

Ø      DOUBLE[(M,D)] [ZEROFILL]

Bilangan floating-point presisi ganda. Tidak dapat bersifat unsigned. Nilai yang diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif.

Ø      DOUBLE PRECISION[(M,D)] [ZEROFILL] dan REAL[(M,D)] [ZEROFILL]

Keduanya sama dengan DOUBLE.

Ø      DATE

Sebuah tanggal. MySQL menampilkan tanggal dalam format 'YYYY-MM-DD'. Jangkauan nilainya adalah '1000-01-01' hingga '9999-12-31'.

Ø      DATETIME

Sebuah kombinasi dari waktu (jam) dan tanggal. MySQL menampilkan waktu dan tanggal dalam format 'YYYY-MM-DD HH:MM:SS'. Jangkauan nilainya adalah '1000-01-01 00:00:00' hingga '9999-12-31 23:59:59'.

Ø      TIME

Tipe data waktu. Jangkauannya adalah '-838:59:59' hingga '838:59:59'. MySQL menampilkan TIME dalam format 'HH:MM:SS'.

Ø      YEAR[(2|4)]

Angka tahun, dalam format 2- atau 4-digit (default adalah 4-digit). Nilai yang mungkin adalah 1901 hingga 2155, 0000 pada format 4-digit, dan 1970-2069 pada format 2-digit (70-69).

 

  •  Oracle :
  1. Varchar2(size) : string yang memiliki panjang karakter vaiable dengan panjang maxial sebesar size. Tipe data ini memperbolehkan penyimpanan semua karakter yang dapat dimasukkan melalui keyboad. Maksimum size yang dapat disimpan sebesar 4000 bytes (karakter). Tipe data ini juga memungkinkan untuk mneyimpan data numerik. Biasanya space akan langsung dieliminasi jika menggunakan tipe ini.
  2. Char(size): string dengan panjan gkarakter tetap sebesar ukuran size. Tipe data ini mempunyai kemampuan yang hampir sama yakni menyimpan karakter, hanya saja maksimum size yang disimpan hanya sebesar 2000 bytes.
  3. Number(p,s) : tipe data number memiliki presisi p dan s digit dibelakan koma jika kita abaikan p dan s berarti dianggap sebagai tipe number floating point. Tipe data ini menyimpan bilangan interger sampai maksimum dari digit integer tersebut. misal untuk spesifikasi (5,2) berarti 3 digit sebelum koma dan 2 digit dibelakang koma.
  4. Long : data karakter dengan ukuran panjang bervariasi, hingga mencapai 2 GB.(tipe data seperti ini tidak dapat digunakan sebagai primary key).
  5. Raw(size) : tipe data berupa binary data dengan ukuran maksimal 255 bytes
  6. Long Raw : Tipe data berupa binary data dengan ukuran maksimal 2 GigaBytes tidak dikonversi oleh oracle (data mentah apa adanya, spasi dihitung 1 karakter).
  7. Date : Tipe data ini menyimpan waktu dan tanggal dari sebuah informasi, dengan komponen waktu yang dibulatkan ke detik terdekat. Untuk menampilkannya dalam teks harus menggunakan fungsi to_char.
  8. Timestamp : tipe ini mirip dengan date. Di dalam tipe ini terdapat komponen waktu yang dapat langsung ditampilkan tanpa harus mengubahnya terlebih dahulu dengan fungsi to_char.
  9. Clob : Tipe data ini memperbolehkan penyimpanan objek dengan ukuran yang sangat besar sekitar 4 GB. Clob mirip sekali dengan varchar2 hanya saja tipe data ini mempunyai kapasitas maksimum yang lebih besar.
  10. Blob : tipe ini memperbolehkan penyimpanan objek bbinary yang besar dan tidak terstruktur. Contoh dari tipe data blob adalah suara dan video.

 

1.      Pengertian Database Management System

Database management system(DBMS) adalah seperangkat program komputer yang mengendalikan pembuatan,pemeliharaan, dan penggunaan database.

2.      Aplikasi  yang digunakan database :

Beberapa perangkat lunak DBMS yang sering dipakai dalam aplikasi sebuah program adalah MySQL dan ORACLE .

  •   MySQL adalah suatu perangkat lunak database relasi (Relational Database Management System atau RDBMS), seperti halnya ORACLE, Postgresql, MS SQL, dan sebagainya.

           Kelebihan:

1.      Kecepatan

2.      Kemudahan penggunaan

3.      Harga

           Kekurangan :

Salah satu kekurangan dari MySQL adalah dalam masalah koneksi ke bahasa pemrograman visual seperti visual basic, delphi, dan foxpro, mysql kurang support, karena koneksi ini menyebabkan field yang dibaca harus sesuai dengan koneksi dari program visual tersebut, dan ini yang menyebabkan mysql jarang dipakai dalam program visual, serta data yang ditangani belum begitu besar.


 

  •   Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform).

            Kelebihan :

1.  Row-Level Locking,fitur ini dapat melakukan lock tidak hanya pada tabel-level saja, akan tetapi dimungkinkan untuk melakukan lock lebih jauh lagi sampai pada row-level.

2. Data Partitioning, Oracle memungkinkan kita untuk melakukan partisi ke suatu tabel maupun indeks. Hal ini akan dapat meningkatkan kemampuan kita untuk dalam melakukan manajemen data.

            Kelemahan:

Kelemahan dari sistem manajemen basis data ORACLE adalah, sifatnya yang tidak open source menjadi salah satu kendala bagi para programmer untuk memperoleh aplikasinya, serta Penggunaan Oracle sangat memakan banyak biaya, mulai dari device sampai diperlukannya Database Administrator yang handal.