BLOGGER TEMPLATES AND TWITTER BACKGROUNDS »

Minggu, 23 Desember 2012

Transfromasi Model Data

Varian entitas terbagi mejadi dua bagian, yaitu entitas kuat dan entitas lemah.
a.      Entitas kuat adalah entitas yang dilibatkan dalam ERD tidak memiliki ketergantungan dengan himpunan entitas lainya.
b.      Entitas lemah adalah entity yang keberadaanya tergantung keberadaan entity lain. Entitas lemah tidak memiliki atribut yang dapat berfungsi sebagai key attribut.
Berikut ini merupakan contoh entistas kuat dan lemah, yakni :
·         Agregasi merupakan penggambaran himpunan relasi yang secara langsung menghubungkan sebuah entitas dengan sebuah himpunan relasi dalam ERD.
·         Transformasi model data ke basis data fisik yaitu komponen ERD (himpunan entitas dan relasi) ditransformasikan menjadi tabel . atribut yang melekat pada masing-masing himpunan entitas dan relasi akan dinyatakan sebagai field dari tabel yang sesuai.
·         Relasi berderajat relasi  1-1 yakni menghubungkan dua buah himpunan entitas yang direpresentasikan dalam bentuk penambahan atau penyertaan atribut relasi ke tabel yang mewakili salah satu dari himpunan entitas.
·         Relasi berderajat 1-N yaitu menghubungkan dua buah himpunan entitas direpresentasikan dalam bentuk pemberian atau pencantuman atribut key dari himpunan entitas berderajat 1 ke tabel yang mewakili himpunan entitas berderajat N.
·         Relasi berderajat N-N yaitu menghubungkan dua buah himpunan entitas, diwujudkan dalam bentuk tabel khusus yang memiliki field (foreign key) yang berasal dari key-key dari himpunan entitas yang dihubungkan.

Query Lanjutan

Subquery
Subquery adalah statement SELECT yang dilampirkan sebagai klausa dalam SQL Statement yang lain. Untuk penulisan subquery pada SQL (SELECT select_list FROM table);

Penggunaan Subquery

Subquery ini digunakan untuk menyelesaikan persoalan dimana terdapat suatu nilai yang tidak diketahui. Subquery terdapat banyak kolom yang merupakan tiap baris dari main query dibandingkan dengan nilai dari subquery multiple-row dan multiple-column.
Tipe Perbandingan Pada Subquery:
             a.       Perbandingan Berpasangan
             b.      Perbandingan Tidak Berpasangan

Penggunaan Subquery dalam Klausa From
Query ini dikenal juga dengan istilah inline view, karena tidak membentuk object database. Contoh penggunaan query pada from : (SELECT department_id, REDS(salary) salavg FROM employees GROUP BY department_id)

Ekspresi Scalar Subquery
Ekspresi scalar subquery merupakan subquery yang mengembalikan hanya satu nilai kolom dari satu baris. Contoh penggunaannya dengan ekspresi Case : (SELECT department_id FROM departments WHERE location_id = 1800).
Contoh penggunaanya dengan klausa ORDER BY : (SELECT department_name FROM departments WHERE e.department_id = d.department_id);

Korelasi Subquery
Korelasi Subquery digunakan untuk pemrosesan baris per baris. Tiap-tiap subquery dijalankan sekali untuk setiap baris dari outer query.

Proses dari Korelasi
Proses dari korelasi itu sendiri bagaiman mengambil baris dari outer query kemudian menjalankan inner query untuk quality atau disquality baris kandidat selanjutnya menggunakan nilai dari inner querry quality atau disquality baris kandidat dan kembali lagi ke awal. Cara penulisan korelasi subquery : (SELECT column1, column2 FROM table2 WHERE expr1 = expr2);

Penggunaan Operator Exist Dan Non Exist

Operator EXISTS dan NOT EXIST digunakan untuk menguji keberadaan dari baris dalam himpunan hasil dari subquery.

Penggunaan Klausa With
Dalam menggunakan klausa WITH, kita dapat menggunakan blok query yang sama dalam statement SELECT pada saat terjadi lebih dari sekali dalam complex query.

Rabu, 28 November 2012

Dependency & Normalisasi

-->
A.     Functional Dependency

  • Merupakan hubungan/relationalship antara atribut-atribut dalam relasi. Suatu atribut dikatakan functionally dependent jika harga atribut tersebut menentukan harga atribut lain. Disimbolkan dengan tanda panah dan dibaca “secara fungsional menentukan”.
  • Notasi dari functional dependency adalah A -> B. Dibaca atribut A menentukan atribut B.
Contoh:
Tabel pemasok barang

No_pemasok
Nama_pemasok
5
Dina
15
Zian
20
Esa

Ketergantungan pada tabel pemasok barang diatas adalah :
No_pemasok -> Nama_pemasok atau No_pemasok menentukan Nama_pemasok

Tabel Siswa

Matkul
Nim
Nama
Nilai
Psikopen
5302411033
Dina
A
Bahasa Inggris
5302411013
Yanuar
B
Teknik Digital
5302411008
Sigit
AB

Ketergantungan pada tabel siswa diatas adalah :
Nim -> Nama atau Nim menentukan Nama , karena untuk setiap nilai dengan Nim yang sama maka nilai dengan nama juga akan sama.
{Matkul,Nim} -> Nilai
Matkul dan Nim dapat menentukan Nilai jika Matkul dan Nilai merupakan gabungan.

Macam-Macam Functional Dependency
1.         Full Functional Dependency
Menunjukkan suatu relasi jika terdapat atribut A dan B dalam satu relasi, dimana atribut B memiliki ketergantungan fungsional secara penuh pada atribut A dan atribut A ketergantungan pada atribut B. Full functional dependency hanya terdiri dari satu atribut saja.
2.      Partially Dependency
Merupakan ketergantungan fungsional dimana beberapa atribut dapat dihilangkan dari A dengan ketergantungan tetap dipertahankan. Dan B memiliki dependensi terhadap subset A. Pada partially dependency ini salah satu dari atributnya harus primary key.
3.         Transitive Dependency
Merupakan suatu ketergantungan fungsional dimana A, B,C adalah atribut sebuah relasi dimana A -> B dan B -> C. Maka, C dikatakan sebagai transitive dependency terhadap A melalui B

B. Normalisasi
  • Normalisasi merupakan suatu proses untuk mendapatkan struktur tabel atau relasi yang efisien dan bebas dari anomali, dan mengacu pada cara data item dikelompokkan ke dalam struktur record.
·Tujuan Normalisasi , adalah:
1.      Mengoptimalkan struktur-struktur tabel.
2.      Meningkatkan kecepatan.
3.      Menghilangkan pemasukan data yang sama.
4.      Lebih efisien dalam penggunaan media penyimpanan.
5.      Mengurangi redudansi yaitu adanya penggandaaan data.
6.      Menghindari anomali yaitu adanya keanehan-keanehan dari data.
7.      Menjaga integritas data.

Bentuk-bentuk Normalisasi :
1.         First Normal Form (1NF)
Merupakan suatu keadaan dimana perpotongan baris dan kolom pada relasi hanya berisi satu nilai. Pada bentuk ini tidak diperbolehkan adanya atribut multivalue (atribut bernilai banyak) dan atribut komposit, atau perpaduan di antara keduanya.
2.         Second Normal Form (2NF)
Merupakan suatu tabel dikatakan 2NF jika 1NF sudah terpenuhi dan semua atribut selain primary key secara utuh memiliki ketergantungan fungsional pada primary key. Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
3.         Third Normal Form (3NF)
Merupakan suatu tabel dikatakan 3NF apabila 2NF sudah terpenuhi dan tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya (ketergantungan transitif).
4.         Boyce-Codd Normal Form (BCNF)
Merupakan Semua anomali yang tersisa dari hasil penyempurnaan kebergantungan fungsional di atas telah dihilangkan.
5.         Four Normal Form (4NF)
Semua kebergantungan bernilai banyak (multivalued dependencies) telah dihilangkan.
6.         Five Normal Form (5NF)
Semua anomali yang tertinggal telah dihilangkan.
Langkah Normalisasi
Dimulai dari bentuk yang tidak normal -> bentuk 1NF (menghilangkan atribut-atribut ganda) -> 2NF (menghilangkan dependensial partial) -> 3NF (menghilangkan dependency transitive) -> BCNF (menghilangkan ketergantungan penentunya bukan kunci candidate) -> 4NF (menghilangkan lebih dari satu dependency yang bernilai ganda) -> 5NF (mengatasi dependency ganda).

Rabu, 14 November 2012

Query Language


Query Language 
(Bahasa yang meminta perintah dengan melibatkan data)

Relational Queries Language (RQL) :
ERD --> Model data Relational --> Query language

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.


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 

Rabu, 03 Oktober 2012

MODEL DATA RELATIONAL


Model Data Relational merupakan kumpulan tabel berdimensi dua dengan masing-masing relasi(relations) tersusun atas tuple(baris) dan attribut(kolom) pada suatu basis data.

  1. Istilah – istilah dalam MDR 
  2. 1.      Relasi
         Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.
    2.      Atribut
         Kolom pada sebuah relasi (field).
    3.      Tupel
         Baris pada sebuah relasi (record).
    4.      Domain
         Kumpulan nilai yang valid untuk satu atau lebih atribut.
    5.      Derajat (degree)
         Jumlah atribut dalam sebuah relasi (jumlah field).
    6.      Cardinality
         Jumlah tupel dalam sebuah relasi (jumlah record).
     
  3. Relasi Adalah penunjuk adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Relasi dapat juga disebut dengan struktur data yang digunakan untuk menyimpan informasi. Setiap relasi memiliki schema yang mendiskripsikan nama relasi dan attribut beserta tipenya.
    Contoh : mahasiswa=(nim:string, nama_mhs:string).
    Keterangan mahasiswa adalah nama relasi, nim dan nama_mhs adalah nama attribut. String adalah tipe dari attribut.  
    Basis data relational
    Istilah yang terdapat basis data relational:
    1.  Baris disebut tuple.
    2. Kolom disebut attribute.
    3. Tabel disebut relation. 
    4. Domain disebut kumpulan dari harga atomik yang dapat dimiliki oleh suatu kolom/attribut.

    Batasan – batasan integritas (integrity Constraints)
        Adalah batasan yang diberikan untuk relasi. Jika Schema didefinisiakn maka batasan-batasan tersebut ditetapkan. Ketika relasi-relasi dimanipulasi atau dirubah maka harus dicek terlebih dahulu.

  4.   Relational Key
    1.
      Super key
    Satu atribut/kumpulan atribut yang secara unik mengidentifikasi sebuah tupel di dalam relasi (satu atau lebih field yang dapat dipilih untuk membedakan antara 1 record dengan record lainnya).
    2.      Candidate key
    Atribut di dalam relasi yang biasanya mempunyai nilai unik  (super key dengan jumlah field yang paling sedikit).
    3.
      Primary key
    Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi.
    4.   Alternate key
    Candidate key yang tidak dipilih sebagai primary key.
    5.  Foreign key
    Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa.

  5. 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.

    Latihan 1
  6.  Candidate Key
    -          assets
    -          customer-street
    -          amount
  7.     Primary Key
    -          account-number
    -          customer-street
    -          loan-number
    -          branch-name
  8.   Alternate Key
    -          customer-city
    -          balance
    -          branch-city
  9.   Foreign Key
    -          Tidak ada


        Latihan 2
    1. Membuat Tabel
                       Tabel Mahasiswa
No. identitas
Nama Mahasiswa
Mata Kuliah
Umur
5302411033
Alddina Zain
Teknik Digital
18 tahun
5302411055
Yanuar Dwi Putra
Basis Data
21 tahun
5302411011
Esa Septian Pramudha Sigit
Struktur Data
17 tahun
5302411050
Iqbaal Dhiafakhri Ramadhan
Arsikom
14 tahun
5302411155
Afgan Syahreza
Daskom
20 tahun
5302411150
Bisma Kharisma
Logika Pemrograman
22 tahun

     Tabel MataKuliah
Kode_mk
Nilai
Kehadiran
SKS
55TD55
A
  89%
3
05BD00
B
  78%
2
33SD31
C
  89%
2
13AR99
B
  93%
3
55MS69
AB
  10%
2
66LP99
A
  87%
2
  
Tabel Dosen
Nama Dosen
Kode_mk
Mata Kuliah
Mudasir, S.Pd.,S.T.
55TD55
Teknik Digital
Misyati, S.T., M.T.
05BD00
Basis Data
Arief Rahman, S.T.
33SD31
Struktur Data
AnasSalim Zaki, S.T, S.S.
13AR99
Arsikom
Anggi Pratama, S.T., M.Pd.
55MS69
Daskom
Almera Jasmine Zain, S.Pd., M.T.
66LP99
Logika Pemrograman
 
    
2. Tabel Gabungan
No. identitas
Nama Mahasiswa
Mata Kuliah
Dosen
Nilai
5302411033
Alddina Zain
Teknik Digital
Mudasir, S.Pd.,S.T..
A
5302411055
Yanuar Dwi Putra
Basis Data
Misyati S.T, S.S.
B
5302411011
Esa Septian Pramudha Sigit
Struktur Data
Arief Rahman, S.Pd.,S.T.
C
5302411050
Iqbaal Dhiafakhri Ramadhan
Arsikom
Anassalim Zaki, S.T., M.Pd
B
5302411155
 Afgan Syahreza
Daskom
Anggi Pratama, S.Pd., M.T.
AB
5302411150
Bisma Kharisma
Logika Pemrograman
Almera Jasmine Zain, S.T.
A
. 
  
3. Atribut Kunci

Tabel Mahasiswa
Tabel Mata Kuliah
Tabel Dosen
Candidate Key
Nama mahasiswa
-
Nama dosen
Primary Key
no.identitas
kode_mk
kode_mk
Alternate Key
Mata Kuliah, umur
Nilai, kehadiran, sks
Mata kuliah
Foreign Key
-
kode_mk
kode_mk