Powered By Blogger

Selasa, 27 November 2012

Pertemuan Ke-7 SBD Pak Nuriksan : Dependensi dan Normalisasi

Functional Dependency ( Ketergantungan Fungsional )
  • FD menggambarkan realtionship/hubungan, batasan. keterkaitan antara atribut-atribut dalam relasi.
  • Simbol yang digunakan untuk mewakili FD adalah -> dibaca secara fungsional menentukan.

Macam-Macam Dependency :

A. Functional Dependency
  • Full Functional Dependency : Menentukan jika terdapat atribut A dan B dalam suatu relasi.
  • Paritally Dependency : Merupakan ketergantungan fungsional, di mana beberapa atribut dapat dihilangkan dengan ketergantungan tetap dipertahankan.
  • Transitive Dependency : Merupakna tipe functional dependency, yaitu kondisi di mana A,B,C adalah atribut sebuah relasi di mana A -> B dan B -> C.

Normalisasi

Normalisasi adalah melakukan proses mendapatkan struktur dari tabel atau relasi yang efisien dan terbebas dari suatu anomali, dan mengacu pada suatu cara data item yang dikelompokkan ke dalam struktur record. Atau proses pembentukan pada struktur basis data sehingga bagian besar antibiguity bisa dihilangkan.

Why to do Normalisasi ?
  • Optimalisasi struktur-struktur tabel
  • Meningkatkan kecepatan 
  • Menghilangkan pemasukkan data yang sama
  • Lebih efisien dalam penggunaan media penyimpanan
  • Mengurangi redundansi
  • Menghindari anomali, integritas data yang ditingkatkan.
Bentuk normalisasi yang biasa digunakan :
  • First Normal Form (1NF) -> Suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi suatu nilai.
  • Second Normal Form (2NF) -> Jika telah memenuhi bentuk normalisasi 1NF, dan semua atribut selain primary key, secara utuh memiliki FD pada primary key.
  • Third Normal Form (3NF) -> Jika telah memenuhi bentuk normalisasi 2NF, tidak ada atribut non primary key yang memilik ketergantungan terhadap atribut non primary key yang lainnya.
  • Boyce-codd Normal Form (BCNF)
  • Four Normal Form (4NF)
  • Five Normal Form (5NF)

Kamis, 15 November 2012

Pertemuan ke 6 SBD Pak Nuriksan


Dalam sistem basis data, ada suatu kondisi kita harus mendapat informasi tertentu dari basis data tersebut. Hal yang bisa kita lakukan adalah dengan melakukan suatu command atau perintah melalui bahasa tertentu yakni kita sebut bahasa query. Bahasa query sendiri dikelompokkan lagi menjadi 2, yakni :
  1.  Bahasa prosedural => user menginstruksikan sistem dalam serangkaian perintah ke dalam basis data untuk mendapatkan informasi yang diinginkan.
  2.  Bahasa non-prosedural => user tidak perlu menginstruksikan perintah apapun untuk mendapatkan informasi. 
Selain bahasa di atas, ada 2 bahasa lagi dimana bahasa ini digunakan untuk mengkonversi SQL menjadi bahasa relasional formal atau disebut dengan Bahasa query Formal (Formal Query Languages),antara lain :  
  • Aljabar relasional  
Sebenarnya aljabar relasional sendiri adalah salah satu jenis bahasa query prosedural, dimana user menginstruksikan sistem untuk melakukan sederetan perintah untuk mendapatkan informasi yang diinginkan. Bahasa aljabar relasional ini diekspresikan dalam bentuk operator-operator relasi yang levelnya tinggi, seperti s, p, È, -.  Operator-operator inilah yang nantinya menjadi instruksi bagi sistem dan juga menghubungkan beberapa tabel/relasi sebagai input dan menghasilkan sebuah tabel/relasi baru sebagai output. Terdapat lima operasi dasar di aljabar relasional yakni :
  1.  Select (s)
  2.   Project (p)
  3. Union (È)
  4. Set-difference (-)
  5. Cartesian-product(X, disebut juga sebagai cross product)
 Operasi tambahan/turunan dari operasi operasi dasar tersebut adalah :
  1. Set intersection
  2.  Theta join
  3. Natural join
  4. Division
Berdasarkan banyaknya tabel/relasi basis data yang terlibat dalam operasi, maka operasi aljabar relasional dibagi menjadi 2 :
  • Operasi unary => beroperasi pada sebuah tabel untuk mendapatkan informasi yang diinginkan. Contoh operasinya : select, project, rename
  • Operasi binary => beroperasi pada beberapa tabel untuk mendapatkan informasi yang diinginkan. Contoh operasinya : Cartesian-product, union, set-difference

  1.  Operasi Select (s)

Merupakan operasi query yang paling umum, dimana operasi ini digunakan untuk mengambil data dari satu atau lebih tabel, selain itu juga digunakan untuk mengelompokkan sejumlah record dan menghitung total, banyak data, serta rata-ratanya. Beberapa operasi dapat dikombinasikan menggunakan operator Ú (OR) dan Ù (AND).
Untuk melihat hasil operasi dari selection ini, saya menggunakan relasi-relasi berikut :

Contoh 1.1 :
Query : Tampilkan dosen yang lahir di Banyumas
Ekspresi aljabar relasional : s tLahir=”Banyumas” (Dosen)

Contoh 1.2 :
Query : Tampilkan dosen yang lahir di Banyumas atau Bandung
Ekspresi Aljabar Relasional : s tLahir=”Banyumas” Ú tLahir “Bandung” (Dosen)


2. Projection (p)

Adalah operasi untuk menampilkan attribute atau kolom tertentu. Operasi ini adalah salah satu jenis operasi unary dimana hanya mengirim satu relasi argument dengan kolom tertentu pula. Karena relasi merupakan suatu himpunan, maka duplikasi data dihilangkan.
Contoh 2.1 :
Query : Tampilkan NIP, nama, tLahir, tglLahir,alamat dari relasi Dosen
Ekspresi aljabar relasional : p NIP,nam, tLahir, tglLahir, alamat (Dosen)



Contoh 2.2 :
Query : Tampilkan NIP, nama, tLahir, tglLahir, alamat, gPokok dimana tLahir dosen adalah Banyumas dan gaji pokok lebih dari 2000000
Ekspresi aljabar relasional : p NIP,nam, tLahir, tglLahir, alamat (s alamat=”Bali” Ù gPokok >2000000) (Dosen)

3. Operasi Cartesian-product(X)
Adalah operasi yang melakukan perkalian kartesian, dengan output adalah tabel baru hasil perkalian tersebut. Kegunaan operasi ini adalah untuk mengkombinasikan informasi dari beberapa tabel sehingga operasi ini juga termasuk operasi binary.
Contoh 3.1 :
Query : Cartesian-product (X) relasi Jurusan dan TugasJurusan
Ekspresi Aljabar Relasional : Jurusan X TugasJurusan

Contoh 3.2 :
Query : Tampilkan NIP, nama (dari relasi Dosen), idJurusan, tglMulai (dari relasi TugasJurusan) dimana tglMulai adalah 11 Agstustus 1980.
Ekspresi aljabar relasional : p NIP,nama, idJurusan, tglMulai, (s tglMulai=11-Agst-1980ÙDosen.NIP=TugasJurusan.NIP) (Dosen, TugasJurusan)
Atau
p (TugasJurusan.NIP=Dosen.NIP) Ù tglMulai=11-Agst-1980 ((p NIP,nama  (Dosen) X (pidJurusan, tglMulai (TugasJurusan)))


4.  Operasi Union (È)
Adalah operasi untuk menggabungkan tabel dengan ketentuan bahwa masing-masing tabel yang akan digabungkan harus memiliki atribut yang sama. 



Contoh 4.1 :
Query : Tampilkan NIP (dari relasi Dosen) union dari NIP (dari relasi TugasJurusan).
Ekspresi aljabar relasional : p NIP (Dosen) È NIP (TugasJurusan)



5. Operasi Set-Difference (-)
Operasi untuk memperoleh informasi dari suatu relasi, tapi informasi tersebut tidak ada pada relasi lainnya. Operasi hanya bisa dilakukan untuk tabel-tabel tertentu dengan atribut yang dimiliki masing-masing table ada yang tidak sama.
Contoh 5.1 :
Query : Tampilkan NIP (dari relasi Dosen) set-difference dari NIP (dari relasi TugasJurusan).
Ekspresi aljabar relasional : p NIP (Dosen) - NIP (TugasJurusan)

6. Operasi Rename (r)
Adalah operasi untuk mengcopy tabel lama ke dalam tabel baru.
Contoh 6.1 :
Query : Salinlah tabel baru dengan nama DosenNew dari tabel Dosen, dimana jenis kelaminnya adalah ‘Pria’.
Ekspresi aljabar relasional : r DosenNew (s jKelamin=”Pria”) (Dosen)


7.  Operasi Set-Intersection (Ç)
Operasi ini dapat diturunkan dari operasi dasar menjadi seperti berikut :
Oleh karena itu operasi ini termasuk ke dalam operasi tambahan atau operasi turunan. Operasi ini juga merupakan opersi binary, karena menghubungkan antara dua relasi untuk membentuk suatu relasi yang baru.