advertisment

visitors

Rabu, 02 Januari 2013

SUBQUERY


Subquery merupakan sebuah query didalam query. Pengertian dari subquery adalah sebuah pernyataan SELECT yang dilampirkan sebagai klausa dalam SQL pernyataan yang lain. subquery digunakan untuk menentukan suatu nilai yang belum diketahui.
Contohnya adalah : SELECT ..... FROM ..... WHERE... (SELECT...FROM ....WHERE)
Yang tercetak hitam adalah sebuah main query dan yang tercetak merah adalah sebuah subquery. Pada pernyataan diatas subquey dijalankan terlebih dahulu kemudian menjalankan main query jadi main query akan dijalankan ketika sudah mendapat inputan dari subquery tersebut.
Contoh penulisan dari subquery adalah :
SELECT select_list
FROM table
WHERE expr operator (SELECT select_list
                                      FROM table) ;
Pembanding kolom dalam subquery banyak kolom dapat berupa,yaitu:
  1. Pembandingan berpasangan
  2. Pembandingan tidak berpasangan.
Pada penulisan Query bisa diletakkan di dalam klausa FROM untuk membentuk tabel temporer atau disebut juga dengan inline view,  karena  tidak membentuk object database.
Ekspresi scalar subquery adalah subquery yang mengembalikan hanya satu nilai kolom dari satu baris.  Scalar subquery pada standart SQL-92 hanya terbatas pada :
·  SELECT Statement (klausa FROM dan WHERE saja)
·  Daftar VALUE dari statement INSERT
Pada standart SQL-99, scalar subqueries dapat diguanakan dalam :
·  Kondisi dan ekspresi sebagai bagian dari perintah DECODE dan CASE.  
·  Semua klausa dari SELECT Statement kecuali GROUP BY.
Korelasi Subquery
Korelasi  SubQuery  digunakan  untuk  pemrosesan  baris  per  baris. Tiap-tiap  subquery dijalankan sekali untuk setiap baris dari outer query.  Prosesnya adalah sebagai berikut :
Pada proses  korelasi  dimulai  dengan mengambil  baris  dari  outer  query,  kemudian  inner  query  dijalankan  dengan  menggunakan  nilai  baris  kandidat,  kemudian  nilai  dari  inner  query  digunakan  untuk  melakukan  kualifikasi  atau mendiskualifikasi baris kandidat.
Fungsi Korelasi Subquery
Korelasi  Subquery  juga  dapat  digunakan  untuk  meng-update  baris  pada  satu  table berdasarkan pada baris dari table yang lain, korelasi seperti itu dinamakan dengan  Korelasi Update. Korelasi Subquery juga dapat digunakan untuk menghapus baris pada satu table  berdasarkan  pada  baris  dari  table  yang  lain,  korelasi  seperti  itu  dinamakan  dengan Korelasi Delete.
Operator EXISTS  dan NOT EXIST digunakan  untuk menguji keberadaan  dari baris dalam himpunan hasil dari subquery.  
Jika ditemukan, maka :
·  pencarian tidak dilanjutkan dalam inner query dan kondisi ditandai TRUE.
Jika tidak ditemukan, maka :
·  Kondisi ditandai FALSE dan kondisi pencarian dilanjutkan dalam inner query.
With
Dengan menggunakan klausa WITH, kita dapat

Selasa, 27 November 2012

FUNCTIONAL DEPENDENCY & NORMALIZATION

Functional Dependency
Functional Dependency (FD) merupakan ketergantungan yang terjadi antara atribut-atibut pada suatu entiti.
Notasi dari FD yaitu: A –> B, maksudnya yaitu atribut B tergantung pada atribut A.
Salah satu contohnya yaitu:

KodeMK –> NamaMK (artinya atribut NamaMK tergantung pada atribut KodeMK)
Macam-macam Dependency:

1. Full Dependency
Merupakan suatu ketergantungan dimana terdapat atribut A dan atribut B dalam satu relasi.
Contoh:
NIM –> Nilai (artinya yaitu Nilai tergantung pada atribut NIM)
dari contoh di atas Dapat disimpulkan bahwa 1 atribut menetukan pada 1 atribut
2. Partially Dependency
Yaitu suatu functional Dependency yang mana beberapa atribut pada A dapat dihilangkan tetapi ketergantunga terhadap atribut B masih dapat dipertahankan.
Contoh: NIM, nama –> idRuang (artinya idRuang tergantung pada NIM dan nama)
sehingga apabila nama dihilangkan, NIM masih terdapat ketergantungan dengan idRuang.
3. Transitive Dependency
Merupakan salah satu functional dependency dimana keterhubungan anatara A,B,C saling berkaitan. Transitive Dependency dapat dinotasikan A –> B dan B –> C, sehingga apabila kita ingin mengaitkan A –> C maka membutuhkan relasi dari B.
Contoh:
Id_Pelanggan –> {Nama, Salesman, Area}
Salesman –> Area

Normalisasi
Merupakan suatu teknik untuk menghasilkan sekumpulan relasi dengan sifat-sifat yang diinginkan.
Hal-hal yang menjadi dasar acuan dalam proses normalisasi adalah tujuan pembentukan basis data, diantanya harus menghilangkan hal-hal berikut:
a. pengulangan informasi
b. potensi inkosistensi data pada operasi update
c. hindari atribut yang tidak perlu disimpan
d. tersembunyinya informasi tertentu.

Ada beberapa langkah normalisasi diantaranya yaitu: Bentuk 1NF, 2NF, 3NF,BCNF, 4NF dan 5NF.
Namun pada postingan kali ini saya hanya akan mencoba menjelaskan sampai langkah 3NF saja.

1. 1NF
Merupakan sebuah relasi dimana setiap irisan antara baris dan kolom berisikan satu dan hanya satu nilai.
Cara unttuk UNF ke 1NF:
- Tunjuk satu atau sekumpulan atribut sebagai kunci untuk tabel unnormalizied.
- Identifikasi grup yang berulang dalam tabel unnormalized yang berulang untuk kunci atribut
- Hapus grup yang berulang dengan cara memasukkan data yang semestinya ke dalam kolom yang kosong pada baris yang berisikan data yang berulang atau dengan cara menggantikan data yang ada dengan copy dari kunci atribut yang sesungguhnya  ke dalam relasi terpisah.

2. 2NF
Merupakan sebuah relasi dalam 1NF dan setiap atribut non-primary-key bersifat fully functionally dependent pada primary key.
Langkah perubahan dari 1NF ke 2NF yaitu:
- Mengidentifikasi primary key untuk relasi 1NF.
- Mengidentifikasi functional dependency dalam relasi.
- Jika terdapat partial dependency terhadap primary key, maka hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinannya.

3. 3NF
Merupakan sebuah relasi dalam 1NF dan 2NF dimana tidak terdapat atribut non-primary-key attribute yang bersifat transitive dependent pada primary key.
Langkah-langkah perubahan dari 2NF ke 3NF:
- Mengidentifikasi primary key dalam relasi 2NF.
- Mengidentifikasi functional dependency dalam relasi.
- Jika terdapat transitive dependency terhadap primary key, hapus dengan menempatkannya dalam relasi yang baru bersama dengan salinan determinannya.

Kamis, 15 November 2012

QUERY LANGUAGE

*Query language 
      merupakan bahasa spesial yang dapat mengakses informasi atau perintah yang melibatkan data pada database.
Bahasa query dapat dikategorikan sebagai bahasa prosedural dan bahasa non prosedural.
>Bahasa prosedural merupakan suatu bahasa yang membuat suatu urutan instruksi. Misal : Aljabar Relasional
>Bahasa non prosedural merupakan suatu bahasa yang hanya mendeskripsikan informasi tanpa memberikan urutan informasi. Misal : Kalkulus relasional, dan Kalkulus relasional tupel.
*Aljabar relational 
           merupakan suatu bahasa query procedural yang memiliki satu atau dua masukkan dan menghasilkan sebuah keluaran dari operasi tersebut.
Ada dua operasi pada aljabar relasional yaitu :
>Operasi Dasar : Terdiri atas select, project, cross, union, intersection, subdifference, rename, cartesian product.
>Operasi Tambahan : Terdiri atas set intersection, tetha join, natural join division.
*Jenis-jenis operasi 
Unary    : merupakan suatu operasi yang hanya digunakan pada suatu relasi 
Binary   : merupakan suatu operasi yang memerlukan sepasang relasi.
*Selection
Merupakan suatu operasi untuk menyeleksi tupel-eupel yang memenuhi suatu predikat.
*Projection
Merupakan suatu operasi unary yang digunakan untuk memperoleh kolom-kolom tertentu.
 

Kamis, 01 November 2012

TRANSFORMASI MODEL DATA

Model Data Relational terdiri dari Varian Entitas dan Agegrasi

*VARIAN ENTITAS
Mempunyai 2 varian entitas yaitu: Entitas kuat dan Entitas lemah

 
**Entitas kuat
Merupakan himpunan entitas yang dilibatkan dalam ERD.
Entitas kuat tidak memiliki himpunan entitas yang lainnya.

 ** Entitas lemah
Merupakan suatu entity yang keberadaannya tergantung dari keberadaan entity yang lain.
Entitas lemah tidak memiliki atribut yang dapat berfungsi sebagai key attribute.

Contoh Entitas Kuat dan Lemah :

*AGREGASI
 Adalah sebuah himpunan relasi yang menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi dalam ERD. Dalam agregasi, relasi tidak hanya terbentuk dari entitas namun juga dari unsur relasi lain yang berhubungan.
Contoh Agregasi : 

*Relasi dengan derajat relasi 1-N yang menghubungkan 2 buah himpunan entitas, juga akan direpresentasikan dalam bentuk pencatuman atribut key dari himpunan entitas berderajat 1 ke tabel yang mewakili himpunan entitas berderajat N.
*Atribut key dari himpunan entitas berderajat 1 menjadi atribut tambahan bagi himpunan entitas berderajat N.
*Relasi dengan derajat relasi N-N yang menghubungkan 2 buah himpunan entitas, diwujudkan dalalm bentuk tabel khusus yang memiliki field (tapatnya foreign key) yang berasal dari key–key dari himpunan Entitas yang dihubungkan.

*IMPLEMENTASI HIMPUNAN ENTITAS LEMAH DAN SUB ENTITAS

Pengunaan himpunan Entitas Lemah dan Sub Entitas dalam diagram ER diimplementasikan dalam bentuk tabel sebagaimana himpunan entitas kuat. Yang membedakannya hanya jika humpunan Entitas Kuat sudah dapat langsung memjadi sebuah tabel utuh walaupun tanpa melihat relasinya dengan himpunan entitas lain.

 Maka himpunan entitas lemah hanya dapat ditransformasikan menjadi sebuah tabel dengan menyertakan atribut key dari hasil implementasi himpunan entitas lemah.

*Implementasi Himpunan Lemah

*Implementasi Himpunan Entitas Lemah dan Sub Entitas 

Selasa, 02 Oktober 2012

MODEL DATA RELATONAL


Model Data Relasional adalah suatu model basis data yang menggunakan tabel dua dimensi,  yang terdiri atas baris dan kolom untuk menggambarkan sebuah berkas data. 

Model ini menunjukkan cara mengelola/mengorganisasikan data secara fisik dalam memory sekunder, yang akan berdampak pula pada bagaimana kita mengelompokkan data dan membentuk keseluruhan data yang terkait dalam sistem yang kita buat.

 
*Dalam hal ini :
Baris =  Tuple.
Kolom = Attribute.
Tabel = Relation.
Domain = kumpulan dari harga atomik yang dapat dimiliki oleh suatu kolom / attribut.

*Istilah Alternatif : 

 *Macam kunci attribute dari relasi

  • Candidate Key
Adalah atribut yang digunakan untuk membedakan antara satu baris dan dengan baris yang lain.
Contoh :
Nim,nama_mhs dan tgl_lhr

  • Primary Key
Adalah Candidate Key yang digunakan untuk mengidentifikasikan tuple yang unik pada suatu relasi.
Contoh :
Nim

  • Alternate Key
Adalah Candidate key yang tidak menjadi Primary key.
Contoh :
nama_mhs dan tgl_lhr


  • Foreign Key

Adalah sebuah atribut dalam suatu relasi yang merujuk ke primary key relasi lain.




Batasan-Batasan Integritas ( Integrity Constraints)
  • Suatu batasan-batasan yang diberikan terhadap suatu relasi.
  • Ditetapkan ketika schema didefinisikan.
  • Dicek ketika relasi-relasi di modifikasi atau dimanipulasi (penambahan, pengubahan, penghapusan dan pencarian/menampilkan data).  

 Relational Integrity Rules

1.      Null
Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut

2.      Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.

3.      Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan.