Kamis, 27 Desember 2012

Transfromasi Model Data

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

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.

Selasa, 27 November 2012

DEPENDENCY DAN NORMALISASI


A. FUNGSIONAL DEPENDENCY
Fungsional Dependency menggambarkan relationship / hubungan, batasan, keterkaitan antara attribut2 dalam relasi.
Simbol yang digunakan untuk Fungsional Dependency dibaca secara fungsional. 
 Contoh:
Tabel pemasok barang

No_pemasok
Nama_pemasok
15
Karina
20
Rizal
25
Alddina

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

Tabel Siswa

Matkul
Nim
Nama
Nilai
Biologi
5302411015
Karina
A
Geografi
5302411033
Alddina
AB
Fisika
5302411052
Minhatul
A

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 

Selasa, 02 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
    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).
  2.   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
    .
  3. 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


  1.  Candidate Key
    -
              assets
    -
              customer-street
    -
              amount
  2.     Primary Key
    -
              account-number
    -
              customer-street
    -
              loan-number
    -
              branch-name
  3.   Alternate Key
    -
              customer-city
    -
              balance
    -
              branch-city
  4.   Foreign Key
    -
              Tidak ada


        Latihan 2
    1. Membuat Tabel
                       Tabel Mahasiswa
NIM
Nama Mahasiswa
Prodi
Tanggal Lahir
5300410001
Alddina Zain
Tata Kecantikan
28 November 1993
5300410002
Nahdiani Mahardika
TeknikKimia
10 Agustus 1993
5300410003
Minhatul Maula
Teknik Sipil
9 Januari 1993
5300410004
Wakhidatul Fauziah
TeknikMesin
4 Mei 1992
5300410005
Fipin Zaunatul
TeknikElektro
10 Desember 1992
5300410006
Amalina Nurul
Tata Boga
19 Oktober 1992

     Tabel Mata Kuliah
Kode_mk
Nilai
Kehadiran
SKS
00AB021
A
87 %
2
01MP890
B
100 %
2
02MK35
C
78 %
2
03TP608
B
100 %
3
04BD880
AB
93 %
2
05FH401
A
89 %
2
  
Tabel Dosen
Nama Dosen
Kode_mk
Mata Kuliah
Adi Nugroho, S.Pd.,S.T.
00AB021
Algoritma Bisnis
Ratnani, S.T., M.T.
05FH401
Fluida Hukum
Andika Fajar, S.T.
00AP321
Arsitektur Perindustrian
Tri Kinasih, S.T, S.S.
02MK35
Matematika
Hj. Hartati, S.T., M.Pd.
03TP608
Teori Pendidikan
Soedarso, S.Pd., M.T.
04BD880
Basis Data
 
    
2. Tabel Gabungan
NIM
Nama Mahasiswa
Mata Kuliah
Dosen
Nilai
5300410001
Alddina Zain
Fluida Hukum
Ratnani, S.T., M.T.
A
5300410002
Nahdiani Mahardika
Matematika
Tri Kinasih, S.T, S.S.
C
5300410003
Minhatul Maula
Algoritma Bisnis
Adi Nugroho, S.Pd.,S.T.
B
5300410004
Wakhidatul Fauziah
Teori Pendidikan
Hj. Hartati, S.T., M.Pd
B
5300410005
Fipin Zaunatul
Basis Data
Soedarso, S.Pd., M.T.
AB
5300410006
Amalina Nurul
Arsitektur Perindustrian
Andika Fajar, S.T.
A
. 
  
3. Atribut Kunci

Tabel Mahasiswa
Tabel Mata Kuliah
Tabel Dosen
Candidate Key
Nama mahasiswa
-
Nama dosen
Primary Key
nim
kode_mk
kode_mk
Alternate Key
Prodi, tanggal lahir
Nilai, kehadiran, sks
Mata kuliah
Foreign Key
-
kode_mk
kode_mk