Selasa, 25 November 2014

laapooraan 8

BAB I
LANDASAN TEORI



Pendukung Fungsi

PostgreSQL memiliki fungsi yang dapat mengubah suatu nilai dalam suatu kolom atau baris menjadi huruf besar. Fungsi tersebut bernama upper (nama_kolom), berfungsi memanggil fungsi upper dengan nama_kolom sebagaii argumen sehingga menghasilkan nilai padakolom dalam huruf besar. Berikut Struktur SQL untuk menampilkan data dalam huruf besar semua :
SELECT upper ([nama kolom]) FROM [nama tabel];

Berikut struktur SQL untuk menampilkan data dimana huruf pertama saja yang besar:
SELECT initcap ([nama kolom]) FROM [nama tabel];

PL/PGSQL merupakan bahasa yang lain untuk membuat sebuah fungsi, biasanya bahasa ini digunakan untuk menangani fungsi yang lebih kompleks. Pl/pgsql sudah terdapat dalam instalasi PostgreSQL. Keuntungan penggunaan Fungsi PL/PGSQL : 1. Meningkatkan kinerja karena mengurangi pengiriman kode dari klien ke server. 2. Meningkatkan keamanan karena pengaksesan data tertentu ditangani dalam server. 3. Meningkatkan konsistensi data saat sejumlah aplikasi memanggil prosedur yang sama; Sebaliknya kelemahannya yaitu server akan lebih terbebani karena banyak proses yang harus ditangani. Sedangkan query PL/PGSQL agar lebih mudah di pahami akan dibagi menjadi 2 yaitu pembuatan fungsi dan pembuatan definisi – Berikut Struktur pembuatan fungsi dalam pl/pgsql
1. Pembuatan fungsi :
CREATE [OR REPLACE] FUNCTION nama_fungsi ( argtype , … ]) RETURNS tipe_data AS ‘definisi’ LANGUAGE ‘plpgsql’;
2. Pembuatan definisi :
DECLARE nama_variable tipe_data /* deklarasi variabel, type */ BEGIN /* prosedural dan SQL masuk disini seperti select, update dan sebagainya*/ Return nama_variable /* blok ini yang wajib */ END;
- Menghapus fungsi : DROP FUNCTION nama_fungsi(paramater, parameter, parameter … ); Contoh : DROP FUNCTION pembagian(text);
Berikut ini implementasi dari contoh penggunaan fungsi dengan bahasa PL/PGSQL:
db_personal=> CREATE FUNCTION pl_caripegawai (integer) db_personal-> RETURNS text db_personal-> AS ‘DECLARE hasil TEXT; db_personal’> BEGIN db_personal’> SELECT INTO hasil nama as nama_mahasiswa db_personal’> FROM pegawai db_personal’> WHERE id = $1; db_personal’> RETURN hasil; db_personal’> END;’ db_personal-> LANGUAGE ‘plpgsql'; CREATE
db_personal=> SELECT pl_caripegawai (1); pl_caripegawai —————– Hendro (1 row) db_personal=> SELECT pl_caripegawai (2); pl_caripegawai ——————– Tika (1 row)
Contoh berikut menunjukkan query percabangan yang akan menampilkan nilai terkecil dari dua buah parameter :
create function percabangan (x integer,y integer) returns integer as ‘declare nilai_terkecil integer; begin if x < y then select into nilai_terkecil x; else select into nilai_terkecil y; end if; return nilai_terkecil; end;’ language ‘plpgsql’; Hasil sebagai berikut : Select percabangan (300,250); Percabangan —————– 250 (1 row)
Contoh berikut menunjukkan query perulangan yang akan menampilkan akumulasi dari jumlah perulangan :
Create function perulangan (a integer,b integer) Returns integer As ‘ declare nilai_awal integer default a; Hasil integer default 0; Begin
Loop If nilai_awal > b then Exit; End if; Hasil := hasil+nilai_awal; Nilai_awal := nilai_awal+1; End loop; Return hasil; End;’ Language ‘plpgsql’;
Hasilnya sebagai berikut :
Select perulangan (1,5); Perulangan —————- 15 1 (row)

Fungsi PL/PGSQL 
PL/PGSQL merupakan bahasa yang lain untuk membuat sebuah fungsi, biasanya bahasa ini digunakan untuk menangani fungsi yang lebih kompleks. Pl/pgsql sudah terdapat dalam instalasi PostgreSQL.
Berikut adalah keuntungan penggunaan Fungsi PL/PGSQL:
1. Meningkatkan kinerja karena mengurangi pengiriman kode dari klien ke server.
2. Meningkatkan keamanan karena pengaksesan data tertentu ditangani dalam server.
3. Meningkatkan konsistensi data saat sejumlah aplikasi memanggil prosedur yang
sama;
Sebaliknya kelemahannya yaitu server akan lebih terbebani karena banyak proses yang harus ditangani. Sedangkan query PL/PGSQL agar lebih mudah di pahami akan dibagi menjadi 2 yaitu pembuatan fungsi dan pembuatan definisi.
Berikut Struktur pembuatan fungsi dalam pl/pgsql
1. Pembuatan fungsi :
CREATE [OR REPLACE] FUNCTION nama_fungsi ( argtype , ... ])
RETURNS tipe_data
AS ‘definisi
LANGUAGE ‘plpgsql’;
2. Pembuatan definisi :
DECLARE nama_variable tipe_data /* deklarasi variabel, type */
BEGIN
/* prosedural dan SQL masuk disini seperti select, update dan sebagainya*/
Return nama_variable /* blok ini yang wajib */
END;
Menghapus fungsi :
DROP FUNCTION nama_fungsi(paramater, parameter, parameter ... );
Contoh :
DROP FUNCTION pembagian(text); Sudah memahami fungsi, ada tahap selanjutnya, yaitu  trigger.

Trigger
Menjalankan fungsi disaat kita INSERT, UPDATE DAN DELETE data memiliki tipe data khusus yaitu OPAQUE. Memiliki variabel khusus NEW : insert atau update, OLD    : update atau delete
CREATE TRIGGER nama_trigger
BEFORE
    INSERT
    ON nama_tabel
    FOR EACH ROW
EXECUTE PROCEDURE fungsi_dipanggil();

Buat fungsi huruf besar semua
CREATE FUNCTION huruf_besar() RETURNS opaque AS'
BEGIN
    NEW.nama_kolom := UPPER(NEW.nama_kolom);
    RETURN NEW;
END;
'LANGUAGE 'plpgsql';
 
BAB II
HASIL PRAKTIKUM
 
1. Buatlah  fungsi konversi suhu dari Fahrenheit ke derajat celcius dengan rumus konversi sebagai berikut : celcius= (5*(nilai Fahrenheit-32))/9!
Kemudian jalankan hasilnya dengan menSELECT fungsi tersebut ! 
 

2. Buatlah fungsi untuk mencari alamat mahasiswa dari tabel mahasiswa berdasarkan nama mahasiswa. Kemudian jalankan dengan perintah SELECT !
 

 


3. Buatlah fungsi untuk menghitung nilai dengan menggunakan bahasa pl/sql !
 
Nilai > 100 atau Nilai<0  : Nilai Salah
Nilai ≥ 90  : Nilai A
70 ≤ Nilai < 90 : Nilai B
60 ≤ Nilai < 70 : Nilai C
50 ≤ Nilai < 60 : Nilai D
0 ≤ Nilai < 50 : Nilai E

Kemudian jalankan hasilnya dengan menSELECT fungsi tersebut ! 
 
 
4.Buatlah  fungsi menggunakan pl/pgsql  untuk mencari  bilangan ganjil atau genap dari bilangan yang diinputkan. Kemudian jalankan dengan perintah SELECT !




5. Tambahkan kolom modifikasi pada tabel mahasiswa. Dimana setiap ada insert atau update maka tanggal pada kolom modifikasi akan menunjukkan tanggal perubahan tersebut dilakukan.

BAB III
PENUTUP

  • KESIMPULAN 
Jadi kesimpulannya, di setiap DBMS jika ingin membuat suatu query, maka harus hati-hati. Karena di setiap DBMS itu berbeda-beda.
  • SARAN
Sarannya, lebih banyak penjelasan. lebih jelas cara atau strukturnya. lebih rajin dan semangat.

Selasa, 04 November 2014

Laapooraan 6

BAB I
LANDASAN TEORI

Pengertian Normalisasi
Istilah normalisasi berasal dari E. F. Codd, salah seorang perintis teknologi basis data. Selain  dipakai sebagai metodologi tersendiri untuk menciptakan struktur tabel (relasi) dalam basis data (dengan tujuan untuk mengurangi kemubadziran data), normalisasi terkadang hanya dipakai sebagai perangkat verifikasi terhadap tabel - tabel yang dihasilkan oleh metodologi lain.
Bentuk Normal
Aturan-aturan normalisasi dinyatakan dalam istilah bentuk normal. Bentuk normal adalah suatu aturan yang dikarenakan pada relasi - relasi tersebut pada level-level normalisasi. Suatu relasi dikatakan berada dalam bentuk normal tertentu jika memenuhi kondisi-kondisi tertentu. Misalnya,suatu relasi berada dalam bentuk normal pertama (biasa disebut 1NF) jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Beberapa level yang biasa digunakan pada normalisasi adalah :
  • Bentuk Tidak Normal
  • Bentuk Normal Pertama (1NF)
  • Bentuk Normal Kedua (2NF)
  • Bentuk Normal Ketiga (3NF)
  • Bentuk Normal Boyce-Codd (BCNF)
  • Bentuk Normal Keempat (4NF)
  • Bentuk Normal Kelima (5NF)
Bentuk normal pertama hingga ketiga (dibuat oleh E. F. Codd) merupakan bentuk normal yang umum dipakai. Artinya bahwa pada kebanyakan relasi, bila ketiga bentuk normal tersebut telah dipenuhi, maka persoalan anomali tidak akan muncul lagi. Bentuk normal Boyce-Codd merupakan revisi terhadap bentuk normal ketiga. Bentuk normal 4NF dan 5NF (dikemukakan oleh Fagin) hanya dipakai pada kasus-kasus khusus, yakni pada relasi yang mengandung dependensi nilai banyak.
1. Bentuk Tidak Normal
Bentuk ini merupakan kumpulan data yang akan disimpan, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi dan data dikumpulkan apa adanya.
2. Bentuk Normal Pertama (1NF)
Bentuk normal pertama biasa dikenakan pada tabel yang belum ternormalisasi. Tabel yang belum ternormalisasi adalah tabel yang memiliki atribut yang berulang. Definisinya adalah suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal untuk setiap baris. Data yang tak ternormalisasi dapat diubah ke dalam bentuk normal pertama dengan cara membuat setiap baris berisi kolom dengan jumlah yang sama dan setiap kolom hanya mengandung satu nilai. Relasi yang memenuhi bentuk normal pertama umumnya memiliki berbagai masalah. Masalah yang timbul secara umum adalah disebabkan oleh adanya kemubadziran. Selain itu, sekalipun ketidakkon-sistenan misalnya tidak terjadi, namun terjadi ketidakefisienan sewaktu mengubah data. Berbagai persoalan yang menyangkut anomali biasanya juga muncul pada relasi yang hanya memenuhi bentuk normal pertama.
3. Bentuk Normal Kedua (2NF)
 Didefinisikan berdasarkan dependensi fungsional. Suatu relasi berada adalam bentuk normal kedua jika dan hanya jika:
  • Berada pada bentuk normal pertama.
  • Semua atribut  bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer.
Bentuk normal kedua mensyaratkan setiap atribut bergantung pada kunci primer. Untuk mengubah suatu relasi yang tergolong sebagai bentuk normal pertama ke bentuk normal kedua perlu dilakukan dekomposisi terhadap relasi tersebut. Proses dekomposisi dapat dilakukan dengan menggambarkan diagram dependensi fungsional terlebih dahulu. Masalah yang masih sering terjadi pada relasi yang tergolong pada bentuk normal kedua diakibatkan oleh adanya dependensi transitif. Yang mengakibatkan kemungkinan munculnya permasalahan sebagaimana pada bentuk normal pertama.
4. Bentuk Normal Ketiga (3NF)
Definisinya setiap relasi dikatakan dalam bentuk normal ketiga (3NF)  jika :
  • Berada dalam bentuk normal kedua
  • Setiap atribut bukan kunci tidak memiliki ekspendensi transitif terhadap kunci primer.
5. Bentuk Normal Boyce-Codd (BCNF)
Definisi : suati relasi disebut memenuhi bentuk normal Boyce-Codd jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan bnetuk normal sebagai perbaikan terhadap 3NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tapi tidak untuk sebaliknya. Suatu relasi yang memenuhi 3NF belum tentu memenuhi BCNF. Dalam banyak literatur disebutkan bahwa BCNF adalah perbaikan dari 3NF, karena bentuk normal ketigapun mungkin masih mengandung anomali sehingga masih perlu dianomalisasi lebih lanjut.
6. Bentuk Normal Keempat (4NF)
Dalam normalisasi ini kita mengenal adanya tipe baru dari ketergantungan (dependency) yaitu Multivalued Dependency (MVD), yang merupakan generalisasi dari functional dependence. Atau sebaliknya, FD adalah peristiwa khusus dari MVD di mana himpunan nilai dependent berisi satu nilai saja.
7. Bentuk Normal Kelima (5NF)
Suatu relation dapat terus dilakukan  proses nonloss-decomposition sampai semua projection berada pada 5NF. Tetapi  hal ini juga ada keterbatasan yaitu join dependency (JD), yaitu bila projection dapat dilakukan sehingga tidak ada nilai yang hilang, apabila di join kembali. JD adalah generalisasi dari MVD. Suatu relation R berada pada 5NF bila setiap join dependency di R dibuat dengan candidate key di R.


BAB II
HASIL PRAKTIKUM

Diketahui soalnya adalah sebagai berikut :

Kemudian langkah-langkahnya kita buat unnormalized form-nya dulu.

Setelah dapat bentuk unnormalisasinya buat normalisasi yang pertama (1NF)




Dan kita buat bentuk normalisasi yang kedua (2NF). Dan hasil akhirnya (3NF) seperti ini.


BAB III
PENUTUP

Kesimpulan
Dalam merancang database harus dapat  dijawab apabila kita diberikan data, maka bagaimana kita menentukan struktur  logik yang tepat untuk data tersebut, atau bagaimana kita menentukan relation-relation yang diperlukan dan apa atributnya. Semua relation dalam relational database selalu sudah ternormalisasi, dalam arti bahwa semua relation sudah didefinisikan terhadap domain sederhana, yaitu domain yang hanya berisi nilai atomik. Dalam normalisasi lanjutan kita berusaha untuk menghilangkan/mengurangi data yang duplikasi atau mubazir agar supaya mendapatkan bentuk yang baik, hemat tempat, hemat waktu, hemat biaya dan yang memberikan respon yang baik dan cepat.
Suatu relation dikatakan sudah berada  pada bentuk normalisasi tertentu bila memenuhi beberapa batasan tertentu pada tingkat tersebut. Tingkat normalisasi yang lebih tinggi dianggap lebih baik dari tingkat dibawahnya.

Tingkat-tingkat normalisasi :
1.  Relation umum (yang belum dan yang sudah ternormalisasi)
2.  1NF (First Normal Form) relation yang sudah ternormalisasi.
3.  2NF (Second Normal Form) relation.
4.  3NF (Third Normal Form) relation.
5.  BCNF (Boyce Codd Normal Form) relation.
6.  4NF (Fourth Normal Form) relation.
7.  PJ/NF (Project Join Normal Form) atau 5NF (Fifth Normal Form) relation

Untuk 6NF dan 7NF dan seterusnya belum terpikirkan saat ini, walaupun
begitu nanti akan kita bicarakan salah satu tingkat normalisasi lagi yaitu DKNF atau
Domain-Key-Normal Form.

Saran
Jujur, saya masih belum faham, atau istilahnya blank soal seperti ini. Dan mohon kejelasan lagi untuk materi ini. Terimakasih.