Kamis, 29 November 2012

DEPENDENCY DAN NORMALISASI

A. Functional Dependency (Ketergantungan Fungsional)
Suatu atribut dikatakan Functionally Dependent jika menggunakan harga atribut untuk menentukan harga atribut yang lain.


Contoh:
notasi : A => B
A dan B adalah atribut dari sebuah tabel. (Dibaca, A secara fungsional menentukan nilai pada B atau B bergantung pada A).


Functional Dependency:

1. Full Dependency (Ketergantungan Penuh)
Jika terdapat atribut A dan B suatu relasi, berarti :
- B memiliki ketergantungan fungsional penuh terhadap A.
- B bukan memiliki dependensi terhadap A.


2. Partially Dependency (Ketergantungan Parsial)
Dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan.
3. Transitive Dependency (Ketergantungan Transitif)
Dimana kondisi A,B,C adalah atribut sebuah relasi A=>B dan B=>C .Maka C dikatakan sebagai transitive dependency terhadap A melalui B.
Jika C=>A asal melalui B


B. Normalisasi
Merupakan suatu proses pembentukan struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.


Alasan mengapa dilakukan normalisasi :
- Optimalisasi struktur-struktur tabel
- Meningkatkan kecepatan
- Menghilangkan pemasukan data yang sama
- Lebih efisien dalam penggunaan media penyimpanan
- Mengurangi redundansi
- Menghindari anomali (insertion anomalies, deletion anomalies, update anomalies)
- Integritas data yang ditingkatkan


Bentuk normalisasi yang digunakan :
- First normal form (INF)
- Second normal form (2NF)
- Third normal form (3NF)
- Boyce-codd normal form (BCNF)
- Four normal form (4NF)
- Five normal form (5NF)


Langkah-Langkah Normalisasi :


a. 1NF - Bentuk Normal Pertama
Suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai. Tidak diperbolehkan ada atribut yang bernilai banyak (Multivalued Attribut), dan attribut komposit atau kombinas keduanya.


b. 2NF - Bentuk Normal Kedua
Bentuk normal ini terpenuhi jika memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional Dependency pada Primary Key. Dan sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungan hanya bersifat parsial dari primary key. Kemudian jika tidak memiliki ketergantungan pada primary key, maka atribut harus dipindah atau dihilangkan.


c. 3NF - Bentuk Normal Ketiga
Terpenuhi jika :
- Telah memenuhi bentuk 2NF
- Tidak ada atribut non prmary key yang memiliki ketergantungan pada atribut non primary key yang lainya (ketergantungan transitif)

Selasa, 27 November 2012

Query Language


Query Language

Query Language merupakan bahasa khusu yang digunakan untuk melakukan perintah-perintah untuk mengakses data pada sistem basis data.
Query Language atau yang lebih dikenal dengan nama SQL merupakan suatu bahasa yang digunakan untuk membuat sebuah database.
SQL terdapat 2 jenis perintah, yaitu :

1.  Data Devinition Language (DDL) yaitu merupakan suatu perintah SQL untuk mendefinisikan suatu struktur database.
create = merupakan perintah dasar dalam pembuatan tabel
alter  = merupakan perintah untuk mengubah tabel
rename = merupakan perintah untuk mengubah nama tabel
drop = merupakan perintah untuk menghapus table

2. Data Manipulasi Language (DML) yaitu merupakan perintah SQL yang digunakan untuk memanipulasi suatu pengolahan data dalam tabel.
select = digunakan untuk memanggil data dalam sebuah tabel
insert = digunakan untuk memasukkan data kedalam abel
update = digunakan untuk mengubah nama dalam tabel
delete = digunakan untuk menghapus data dalam tabel

kelebihan SQL :
1.  dapat digunakan di server sehingga pengguna dapat menggunakannya di server
2.  aplikasinya mudah dimengerti oleh pengguna
3.  dapat di deain khususuntuk database oracle  


Relational Queries Language  diawali dengan pembuatan ERD yang kemudian diubah menjadi model data relational berupa table informasi terbatas kemudian diterjemahkan ke Query Language.
Bahasa Query Language
Bahasa Prosedural
           Bahasa yang identik dengan aljabar  relational, berupa operasi dasar seperti select* dan beberapa  operasi tambahan.
Bahasa non Prosedural
          Bahasa yang identik dengan kalkulus relational, yaitu mendeskripsikan informasi tanpa memberi instruksi.

Jenis Bahasa Query :

a. Bahasa Prosedural (Aljabar Relasional) merupakan bahasa yang identik dengan aljabar relasional.
 Biasanya mempunyai operasi dasar select dan operasi tambahan.
b.  Bahasa non prosedural (Kalkulus Relasional) merupakan bahasa yang identik dengan kalkulus relational yaitu mendeskripsikan informasi tanpa memberi instruksi.


Query Unary
Yaitu query selection yang digunakan pada relasi binary,

Contoh1 :

Ada beberapa data pada suatu table bernama dosen yang kemudian akan dipilh data tersebut berdasarkan tempat_lahir dengan ketentuan :

Tempat_lahir=’jakarta’   v   tempat_lahir=’bogor’ dari table dosen
Artinya : menampilkan dosen dengan tempat lahir Jakarta atau bogor.

Syntaq pada SQL : select * from dosen where tanggal_lahir=’jakarta’

Contoh2 :

Ada beberapa data pada suatu table bernama dosen yang kemudian akan dipilh data tersebut berdasarkan tempat_lahir dengan ketentuan :

Tempat_lahir=’jakarta’  ^  jenis_kelamin=’pria’ dari table dosen
Artinya : menampilkan dosen dengan tempat lahir Jakarta dan berjenis kelamin pria.

Syntaq pada SQL : select * from dosen where tanggal_lahir=’jakarta’ and jenis_kelamin=’pria’
Dalam contoh diatas terdapat tanda “v”, dan ada juga tanda “^” , perbedaan kedua tanda tersebut adalah :

^ = berarti mengharuskan
v = bisa dipilih salah satu