JURNAL ONLINE (BASIS DATA)

Devinisi Basis Data

 
   Basis : markas / gudang tempat bersarang atau berkumpul.
 
    Data : informasi fakta dunia nyata yang mewakili suatu objek, yang direkam baik dalam bentuk angaka, huruf, teks, gambar atau suara.
 
    Basis Data : adalah sekumpulan data yang saling berelasi.
 
  • Himpunan kelompok data atau arsip yang saling berhubungan, yang diorganisasi sedemikian rupa, sehingga dapat dimanfaatkan kembali dengan cepat.
  •  Kumpulan data yang saling berhubungan yang disimpan secara bersama tanpa adanya pengulangan data. 
  • Kumpulan file yang saling berhubungan yang disimpan dalam media penyimpan elektronik.
 
 
 
Perkembangan Basis Data
 
Sejak tahun 1960-an penggunaan basis data sudah digunakan untuk bidang komersial, dimana pemrosesan file-nya masih berbasis manajemen file tradisional. Perkembangan komputer yang semakin pesat diikuti dengan perkembangan perangkat lunak untuk aplikasi bisnis, sejak tahun 1970-an sampai awal tahun 1980 manajemen berbasis file tradisional berkembang menjadi manajemen basis data.
 
Manajemen ini memungkinkan banyak user untuk mengakses data secara bersamaan sehingga fasilitas yang dimiliki oleh manajemen sudah semakin banyak yaitu fasilitas pemanipulasian data, kontrol konkurensi data, recovery data, keamanan data dan didukung dengan fasilitas komunikasi data karena manajemen ini sudah terhubung dengan suatu jaringan .
 
BASIS DATA ON LINE
 
¨ Basis data on line adalah kumpulan data yang saling berhubungan. Hubungan antar data dapat ditunjukan dengan adanya field/kolom kunci dari tiap file/tabel yang ada. Dalam satu file atau table terdapat record-record yang sejenis, sama besar, sama bentuk, yang merupakan satu kumpulan entitas yang seragam.
 
Tujuannya adalah :
 
1. Membuat agar user mudah mendapatkan data.
 
2. Menyediakan tempat penyimpanan data yang relevan.
 
3. Menghapus data yang berlebihan.
 
4. Melindungi data dari kerusakan fisik.
 
5. Memungkinkan perkembangan lebih lanjut di dalam sistem database.
 
 
Manfaatnya adalah :
 
a. Sebagai komponen utama atau penting dalam sistem informasi, karena merupakan dasar dalam menyediakan informasi.
 
b. Menentukan kualitas informasi yaitu cepat, akurat, dan relevan, sehingga infromasi yang disajikan tidak basi. Informasi dapat dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkanya.
 
c. Mengatasi kerangkapan data (redundancy data).
 
d. Mengatasi kesulitan dalam mengakses data.
 
e. Menyusun format yang standar dari sebuah data.
 
f. Penggunaan oleh banyak pemakai (multiple user). Sebuah database bisa dimanfaatkan sekaligus secara bersama oleh banyak pengguna (multiuser).
 
Contoh :
 
Basis data Jurnal elektronik atau sering di sebut dengan e-journal.
 
  • Yaitu jurnal yang dikemas dalam bentuk file elektronik dalam penelusuran informasi menggunakan jaringan internet. 
  • Jurnal elektronik adalah terbitan serial seperti bentuk tercetak tetapi dalam bentuk elektronik. Biasanya terdiri dari tiga format , yaitu text, text dan grafik, serta full image (dalam bentuk pdf).
 
 
Kelebihan  DATABASE JURNAL ELEKTRONIK ON LINE
 
a. Cepat, artikel dapat segera diletakkan di Web tanpa menunggu waktu yang lama
 
b. Memiliki sistem penelusuran yang mudah, sehingga sangat berpengaruh terhadap berkurangnya duplikasi penelitian karena para peneliti cepat mengetahui penelitian yang sudah dikerjakan sebelumnya.
 
c. Bersifat interaktif
 
d. Memiliki aksesabilitas yang tinggi dimana salah  satunya diakses melalui internet
 
e. Memiliki sifat multiple access yang berarti beberapa orang dapat mengakses artikel yang sama pada waktu yang sama pada waktu yang bersamaan .
 
 
Kelemahan
 
1. Kesulitan membaca layar komputer. Kesulitan ini muncul karena pada saat mengakses jurnal secara bersamaan, banyak yang lagi mengakses jurnal dalam database yang sama juga. Cara ini berpengaruh juga pada proses download dari hasil akhirnya.
 
2.  Sitasi yang mudah rusak. Perubahan URL menjadikan akses jurnal menjadi terganggu.
 
3. Sering tidak memasukkan indeks dan abstrak. Pada    umumnya artikel yang terdapat pada jurnal elektronik menyediakan keduanya, tetapi ada juga yang tidak  saja melengkapi salah satunya.
 
4. Terkadang dalam jurnal elektronik hanya terdapat katalog jurnalnya saja, dan ada juga yang tidak bisa di dwonload.
 
 
Alamat Website/Link :
 
 

¨ http://www.emeraldinsight.com/index.htm

STUDI KASUS ERD DAN NORMALISASI

Menentukan Entity Relationship Diagram ( ERD )

 https://i0.wp.com/phudra.blog.ugm.ac.id/files/2011/04/1.jpgEntitas yang terlibat dari SI Swalayan ini adalah :
  1. Pegawai
  2. Supplier
  3. Pembeli
  4. Barang

Relasi yang terjadi adalah :

Bahasan Sistem Basis Data kali ini tentang Entity Relationship Diagram (ERD) salah satu bentuk pemodelan basis data yang sering digunakan dalam pengembangan sistem informasi. Bahasan meliputi: Pengertian ERD, Notasi ERD, Metode ERD, Tahap ERD, Kardinalitas, dan Contoh kasus ERD

Pengertian ERD

Dalam rekayasa perangkat lunak, sebuah Entity-Relationship Model (ERM) merupakan abstrak dan konseptual representasi data. Entity-Relationship adalah salah satu metode pemodelan basis data yang digunakan untuk menghasilkan skema konseptual untuk jenis/model data semantik sistem. Dimana sistem  seringkali memiliki basis data relasional, dan ketentuannya bersifat top-down. Diagram untuk menggambarkan model Entitiy-Relationship ini disebut Entitiy-Relationship diagram, ER diagram, atau ERD.

Notasi ERD

Ada sejumlah konvensi mengenai Notasi  ERD. Notasi klasik sering digunakan untuk model konseptual. Berbagai notasi lain juga digunakan untuk menggambarkan secara logis dan fisik dari suatu basis data, salah satunya adalah IDEF1X.

Model ERD

Model ERD

Notasi-notasi simbolik yang digunakan dalam Entity Relationship Diagram adalah sebagai berikut :

  • Entitas, Adalah segala sesuatu yang dapat digambarkan oleh data. Entitas juga dapat diartikan sebagai individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain (Fathansyah, 1999). Ada dua macam entitas yaitu entitas kuat dan entitas lemah. Entitas kuat merupakan entitas yang tidak memiliki ketergantungan dengan entitas lainnya. Contohnya entitas anggota. Sedangkan entitas lemah merupakan entitas yang kemunculannya tergantung pada keberadaaan entitas lain dalam suatu relasi.
  • Atribut, Atribut merupakan pendeskripsian karakteristik dari entitas. Atribut digambarkan dalam bentuk lingkaran atau elips. Atribut yang menjadi kunci entitas atau key diberi garis bawah.
  • Relasi atau Hubungan, Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda.
  • Penghubung antara himpunan relasi dengan himpunan entitas dan himpunan entitas dengan atribut dinyatakan dalam bentuk garis.

Contoh ERD

Contoh ERD

Derajat relasi atau kardinalitas

Menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas yang lain. Macam-macam kardinalitas adalah:

  • Satu ke satu (one to one), Setiap anggota entitas A hanya boleh berhubungan dengan satu anggota entitas B, begitu pula sebaliknya.
  • Satu ke banyak (one to many), Setiap anggota entitas A dapat berhubungan dengan lebih dari satu anggota entitas B tetapi tidak sebaliknya.
  • Banyak ke banyak (many to many), Setiap entitas A dapat berhubungan dengan banyak entitas himpunan entitas B dan demikian pula sebaliknya.

Tahap ERD

Tahap pertama pada desain sistem informasi menggunakan model ER adalah menggambarkan kebutuhan informasi atau jenis informasi yang akan disimpan dalam database. Teknik pemodelan data dapat digunakan untuk menggambarkan setiap ontologi (yaitu gambaran dan klasifikasi dari istilah yang digunakan dan hubungan anatar informasi) untuk wilayah tertentu.

Tahap berikutnya disebut  desain logis, dimana data dipetakan ke model data yang logis, seperti model relasional.  Model data yang loguis ini kemudian dipetakan menjadi model fisik , sehingga kadang-kadang, Tahap kedua ini disebut sebagai “desain fisik”.

Secara umum metodologi ERD sebagai berikut:

Metodologi ERD

Metodologi ERD

Contoh Kasus:

Sebuah perusahaan mempunyai beberapa bagian. Masing-masing bagian mempunyai pengawas dan setidaknya satu pegawai. Pegawai ditugaskan paling tidak di satu bagian (dapat pula dibeberapa bagian). Paling tidak satu pegawai mendapat tugas di satu proyek. Tetapi seorang pegawai dapat libur dan tidak dapat tugas di proyek.

Menentukan entitas

Entitasnya : pengawas, bagian, pegawai, proyek

Menentukan relasi dengan matrik relasi

Menentukan Relasi

Menentukan Relasi

Gambar ERD sementara

Hubungkan entitas sesuai dengan matrik relasi yang dibuat

ERD Sementara

ERD Sementara

Mengisi kardinalitas

Dari gambaran permasalahan dapat diketahui bahwa:

  • masing-masing bagian hanya punya satu pengawas
  • seorang pengawas bertugas di satu bagian
  • masing-masing bagian ada minimal satu pegawai
  • masing-masing pegawai bekerja paling tidak di satu bagian
  • masing-masing proyek dikerjakan paling tidak oleh satu pegawai

Mengisi kardinalitas

Mengisi kardinalitas

Menentukan kunci utama
Kunci utamanya: Nomor Pengawas, Nama Bagian, Nomor Pegawai, Nomor Proyek

Menentukan Kunci Utama

Menentukan Kunci Utama

Menggambar ERD berdasarkan kunci

Ada dua relasi many to many pada ERD sementara, yaitu antara bagian dengan pegawai, pegawai dengan proyek, oleh sebab itu kita buat entitas baru yaitu bagian -pegawai dan pegawai-proyek Kunci utama dari entitas baru adalah kunci utama dari entitas lain yang akan menjadi kunci tamu di entitas yang baru.

Menggambar ERD berdasarkan kunci

Menggambar ERD berdasarkan kunci

Menentukan atribut

Atribut yang diperlukan adalah: nama bagian, nama proyek, nama pegawai, nama pengawas, nomor proyek, nomor pegawai, nomor pengawas

Memetakan atribut

  • Bagian : Nama bagian
  • Proyek: Nama proyek
  • Pegawai:Nama pegawai
  • Pengawas: Nama pengawas
  • Proyek-Pegawai : Nomor proyek, Nomor pegawai
  • Pengawas: Nomor pengawas

Model Entity Relationship (ER) yang disajikan dengan Diagram ER (biasa disebut dengan ERD) bukanlah sebuah basis data relasional. Keduanya merupakan dua hal yang berbeda. Karena perbedaan tersebut maka diperlukan proses transformasi dari sebuah ERD menjadi suatu basis data relasional lengkap dengan tabel-tabel (atau relasi) yang telah memenuhi standar normalisasi (paling tidak normalisasi hingga tingkat 3NF). Rancangan basis data relasional hasil transformasi sendiri bergantung kepada desain awal ERD yang telah dibuat. Apakah rancangan tersebut nantinya akan baik dan maksimal dalam merumuskan kebutuhan aturan bisnis perusahaan, serta memenuhi aturan integritas basis data relasional, bergantung pada keahlian, ketelitian dan keberuntungan anda mendesain ERD tersebut.

Ada 12 Aturan yang digunakan untuk melakukan transformasi. 12 Aturan ini di dasarkan dari pemilihan jenis entity, tipe atribute, relationship degree, ratio constrain dan participation constrain yang tergambar di ERD. Untuk membantu anda untuk mengingatnya, saya kelompokan 12 aturan tersebut sebagai berikut:

  • Aturan 1 & 2 berbicara mengenai entity dan atribut.
  • Aturan 3 & 4 berbicara mengenai unary relationship.
  • Aturan 5 s/d 10 berbicara mengenai binary relationship.
  • Aturan 11 berbicara mengenai ternary relationship.
  • Aturan 12 berbicara mengenai weak entity.

Yang anda harus ingat dan pahami dalam menggunakan 12 aturan transformasi ini, yaitu:

  • Kerjakan proses transformasi secara bertahap dan berurut dari aturan 1 sampai dengan 12.
  • Tidak semuanya aturan harus dilakukan. Akan banyak sekali aturan-aturan yang terlewati karena tidak memiliki ciri-ciri yang disebutkan oleh setiap aturan.
  • Telitilah dalam melihat setiap relationship, terutama jika anda ingin mentransformasi dari suatu ERD yang cukup besar.
  • Aturan 1 adalah aturan yang mutlak dilakukan.
  • Menurut pengalaman saya, aturan yang paling sering digunakan adalah aturan 8 dan 10 karena memang ciri-ciri inilah yang paling sering muncul pada sebuah ERD. (Anda akan lihat sendiri nanti)

Sekarang mari kita membahas mengenai aturan transformasi tersebut satu persatu.

Aturan 1 – Entity dan Atribut Simpel, Key & Composite

“Setiap entity yang ada di ERD dibuatkan suatu relasi di mana relasi tersebut memuat semua atribut key dan simple. Sedangkan untuk atribut composite, dibuatkan atribut sesuai dengan komponen-komponennya saja.”

  • Buatkan relasi-relasi untuk mewakilkan setiap entity yang ada pada ERD.
  • Atribut key pada setiap entity, secara otomatis menjadi primary key pada relasi bersangkutan.
  • Atribut simple pada setiap entity, secara otomatis menjadi atribut-atribut baru pada relasi bersangkutan.
  • Atribut composite pada setiap entity, maka hanya komponen-komponen pada atribut composite tersebut yang menjadi atribut di relasi bersangkutan.

Aturan 2 – Atribut Multivalue

“Setiap relasi yang mempunyai atribut multivalue, maka dibuatkan sebuah relasi baru di mana primary key-nya bertipe composite key. Primary key tersebut yaitu gabungan dari Primary Key dari entity yang memiliki atribut multivalue dan nama atribut multivalue itu sendiri.”

  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari Primary Key dari Entity tersebut dan nama Atribut multivalue itu sendiri.

Aturan 3 – Unary Relationship 1:N

“Setiap unary relationship 1:N, pada relasi tersebut perlu ditambahkan suatu foreign key yang menunjuk ke nilai primary key-nya.”

  • Pada relasi yang mewakilkan entity yang dimaksud perlu ditambahkan sebuah atribut yang bertindak sebagai foreign key.
  • Atribut foreign key ini mengacu pada primary key milik relasi itu sendiri.
  • Sebagai saran, untuk penamaan atribut foreign key di sini, gunakan penamaan yang tepat yang dapat memberikan informasi apa nama primary key acuan dan alasan kenapa mengacu pada primary key tersebut (biasanya adalah penamaan relationship unary di ERD).

Aturan 4 – Unary Relationship M:N

“Setiap Unary Relationship M:N, buatlah relasi baru dimana primary key-nya bertipe composite key. Primary key tersebut yaitu gabungan dari dua atribut di mana keduanya menunjuk ke primary key relasi awal dengan penamaan berbeda.”

  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua atribut foreign key, yang kedua-duanya mengacu pada primary key relasi awal.
  • Kedua atribut foreign key yang menjadi primary key ini harus memiliki penamaan yang berbeda. Penamaan ini biasanya mengacu kepada sebab terjadinya relationship unary tersebut seperti: induk – anak atau head – detail.

Aturan 5 – Binary Relationship 1:1 dgn kedua sisi Total Participation Constrain

“Setiap Binary Relationship 1:1, dimana kedua sisi Total Participation Constrain, buatlah suatu relasi baru yang merupakan relasi gabungan dari kedua entity yang be-relationship dan menghapus dua relasi lama, di mana primary key-nya pada relasi baru tersebut dapat dipilih salah satu dari dua primary key relasi awal.”

  • Buatkan sebuah relasi baru.
  • Relasi baru tersebut berupa gabungan dari dua relasi awal yang berarti semua atributnya berasal dari dua relasi awal.
  • Kedua relasi awal harus dihapus karena telah diwakilkan dengan relasi penggabungan yang baru dibuat tersebut.
  • Primary key untuk relasi baru ini dapat dipilih salah satu dari dua primary key relasi awal yang digabungkan.

Aturan 6 – Binary Relationship 1:1 dgn satu sisi Total Participation Constrain

“Setiap Binary Relationship 1:1 dan salah satu Participation Constrainnya total, maka Primary key pada relasi yang Participation Constrainnya Partial menjadi Foreign Key pada relasi yang lain.”

  • Pada relasi yang bersisi total participation constrain, perlu ditambahkan sebuah atribut yang bertindak sebagai foreign key.
  • Foreign key ini mengacu pada Primary key di relasi yang bersisi partial participation constrain.

Aturan 7 – Binary Relationship 1:1 dgn kedua sisi Partial Participation Constrain

“Setiap Binary Relationship 1:1, dimana kedua Participation Constrainnya partial, maka selain kedua relasi perlu dibuat relasi baru yang berisi Primary Key gabungan dari Primary Key kedua tipe Entity yang berelasi.”

  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua primary key entitas yang berelasi.

Aturan 8 – Binary Relationship 1:N dgn sisi N Total Participation Constrain

“Setiap Binary Relationship 1:N, dimana tipe Entity yang bersisi N mempunyai Participation Constrain Total, maka Primary Key pada relasi yang bersisi 1 dijadikan Foreign Key pada relasi yang bersisi N.”

  • Pada relasi yang bersisi N, perlu ditambahkan sebuah atribut yang bertindak sebagai foreign key.
  • Foreign key ini mengacu pada Primary key di relasi yang bersisi 1.

Aturan 9 – Binary Relationship 1:N dgn sisi N Partial Participation Constrain

“Setiap Binary Relationship 1:N , di mana tipe Entity yang bersisi N mempunyai Participation Constrain Partial, buatlah relasi baru di mana Primary Key-nya merupakan gabungan dari Primary Key kedua tipe Entity yang berelasi.”

  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua primary key entitas yang berelasi.

Aturan 10 – Binary Relationship M:N

“Setiap Binary Relationship M:N, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary key kedua tipe Entity yang berelasi.”

  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari dua primary key entitas yang berelasi.

Aturan 11 – Ternary Relationship Degree

“Setiap Ternary Relationship, buatlah relasi baru dimana Primary Keynya merupakan gabungan dari Primary Key ketiga Entity yang berelasi.”

  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari tiga primary key entitas yang berelasi.

Aturan 12 – Weak Entity

“Setiap tipe Weak Entity, dibuat suatu relasi yang memuat semua atributnya di mana Primary Key-nya adalah gabungan dari Partial Key dan Primary Key di relasi induk (Identifying owner).”

  • Buatkan sebuah relasi baru.
  • Relasi baru ini memiliki primary key bertipe composite key (kunci gabungan).
  • Primary key tersebut adalah gabungan dari partial key milik weak entity dan primary key milik relasi induk.

Normalisasi

Proses normalisasi adalah proses untuk memperoleh properti-properti skema relasi yang bagus menjadi bentuk normal lebih tinggi sehingga syarat-syarat dibawah ini terpenuhi:
a. Mengoptimalisasi redudansi (pengulangan data yang tidak perlu). Redudansi tidak bisa dihilangkan sama sekali karena berguna untuk integritas referensial, tetapi redudansi bisa dioptimalisasi. Untuk jumlah data yang tidak terlalu banyak mungkin tidak terlalu berpengaruh dalam hal penggunaan harddisk. Tapi bayangkan jika ada ribuan, bahkan jutaan redudansi, mungkin akan sangat berpengaruh pada penggunaan ruang.
b. Menghilangkan anomali. Anomali pada dasarnya adalah ketidak-konsistenan (inkonsistensi). Misalkan ada pergantian nama dari Bank Perkasa menjadi Bank Perkasa Utama sebanyak 4 record. Jika pergantian nama hanya dilakukan pada salah satu record saja, maka terjadi ketidak-konsistenan yaitu satu nomor bank berrelasi dengan 2 nama bank yang berbeda.

Dekomposisi tabel dapat mengurangi redudansi yang ada dan menghilangkan anomali.
Perancangan melalui proses normalisasi mempunyai keuntungan-keuntungan sebagai berikut :

a. Meminimalkan ukuran penyimpanan yang diperlukan untuk penyimpanan data.
b. Meminimalkan resiko inkonsistensi data pada basis data.
c. Meminimalkan kemungkinan anomaly pembaruan.
d. Memaksimalkan stabilitas struktur data.

Bentuk Normal

Tujuan proses normalisasi adalah mengkonversi relasi menjadi bentuk normal lebih tinggi. Terdapat beragam tingkat bentuk normal, yaitu :

a. Bentuk normal pertama (1NF)
b. Bentuk normal kedua (2NF)
c. Bentuk normal ketiga (3NF)
d. Bentuk normal Boyce-Codd (BCNF)
e. Bentuk normal keempat (4NF)
f. Bentuk normal kelima (5NF)

Codd mendefinisikan bentuk normal pertama, kedua dan ketiga di makalah (Codd, 1970). Bentuk normal ketiga kemudian diperbaiki sehingga mempunyai bentuk normal yang lebih kuat yaitu BCNF (Codd, 1974). Fagin memperkenalkan bentuk normal keempat (Fagin, 1977), kemudian Fagin juga memperkenalkan bentuk normal kelima (Fagin, 1979).

Bentuk normal pertama untuk menghilangkan atribut bernilai jamak. Bentuk normal kedua untuk menghilangkan kebergantungan parsial. Bentuk normal ketiga untuk menghilangkan kebergantungan transitif. Bentuk normal Boyce-Codd untuk menghilangkan anomaly tersisa disebabkan kebergantungan fungsional. Bentuk normal keempat untuk menghilangkan kebergantungan nilai jamak. Bentuk normal kelima untuk menghilangkan anomaly tersisa.

Tiga bentuk normal pertama berkaitan dengan kebergantungan fungsional. Sementara itu bentuk keempat dan kelima berkaitan dengan redudansi yang disebabkan kebergantungan banyak nilai (multi-valued dependencies).

Bentuk Normal Pertama

Bentuk normal pertama adalah ekivalen dengan definisi model relasional. Relasi adalah bentuk normal pertama (1NF) jika semua nilai atributnya adalah sederhana (bukan komposit).
Syarat :
o Tidak ada set atribut yang berulang atau bernilai ganda.
o Telah ditentukannya primary key untuk tabel atau relasi.
o Tiap atribut hanya memiliki satu pengertian.
o Tiap atribut yang dapat memiiki banyak nilai sebenarnya menggambarkan entitas atau relasi yang terpisah.

Bentuk Normal Kedua
Syarat :
o Bentuk data telah memenuhi kriteria bentuk normal ke satu.
o Atribut bukan kunci(non-key attribute) haruslah memiliki ketergantungan fungsional sepenuhnya pada primary key
Relasi pada bentuk normal kedua harus tidak menyimpan fakta-fakta mengenai bagian kunci relasi. Bentuk normal kedua menghilangkan kebergantungan parsial dan masih memiliki anomali-anomali yang secara praktis tidak dapat diterima.

Bentuk Normal Ketiga
Syarat :
o Bentuk data telah memenuhi kriteria bentuk normal ke dua.
o Atribut bukan kunci(non-key attribute) tidak boleh memiliki ketergantungan fungsional terhadap atribut bukan kunci lainnya. Seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.

Bentuk normal ketiga menghilangkan kebergantungan transitif, awalnya bentuk normal ketiga dipikir sebagai bentuk normal puncak/paling akhir. Namun kemudian dapat ditemukan bentuk normal lebih kuat yaitu bentuk normal Boyce-Codd.

Bentuk Normal Boyce-Codd (BCNF)

BCNF memiliki ketentuan yaitu masing-masing atribut utama bergantung fungsional penuh pada masing-masing kunci dimana kunci tersebut bukan bagiannya. Relasi adalah BCNF (optimal) jika setiap determinan atribut-atribut relasi adalah kunci relasi. Relasi adalah BCNF (optimal) jika kapanpun fakta-fakta disimpan mengenai beberapa atribut, maka atribut-atribut ini merupakan satu kunci relasi. BCNF dapat memiliki lebih dari satu kunci. Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan.

Bentuk Normal Keempat

Relasi dalam bentuk normal keempat (4NF) jika relasi dalam BCNF dan tidak berisi kebergantungan banyak nilai. Untuk menghilangkan kebergantungan banyak nilai dari satu relasi, kita membagi relasi menjadi dua relasi baru. Masing – masing relasi berisi dua atribut yang mempunyai hubungan banyak nilai.
Bentuk Normal Kelima

Bentuk normal kelima (5NF) berurusan dengan properti yang disebut join tanpa adanya kehilangan informasi (lossless join). Bentuk normal kelima (5NF) juga disebut PJNF (projection-join normal form). Kasus-kasus ini sangat jarang muncul dan sulit untuk dideteksi secara praktis.

Contoh Normalisasi pada beberapa tingkatan.
Diberikan tabel Mahasiswa di bawah ini, akan dilakukan normalisasi sampai bentuk normal ke tiga

Perhatikan bahwa tabel di atas sudah dalam bentuk normal ke Satu(1NF).

Bentuk Normal 3 NF3

ALAT BANTU PERANCANGAN BASIS DATA (ERD DAN NORMALISASI)

RDBMS

RDBMS adalah singkatan dari  “Relational Database Management System”. Data RDBMS disimpan dalam objek database yang disebut tabel. Tabel adalah tempat penyimpanan utama pada setiap RDBMS dan pada dasarnya mereka adalah koleksi entri data terkait. Sebagai contoh tabel yang disebut Users mungkin menyimpan informasi tentang banyak orang, dan setiap entri dalam tabel ini akan mewakili satu pengguna yang unik. Meskipun semua entri pengguna dalam tabel Pengguna yang unik, mereka terkait dalam arti bahwa mereka menggambarkan objek serupa.

 Table Users

FirstName

LastName

DateOfBirth

John

Smith

12/12/1969

David

Stonewall

01/03/1954

Susan

Grant

03/03/1970

Setiap tabel database terdiri dari kolom dan baris. Setiap kolom tabel mendefinisikan tipe data yang disimpan di dalamnya, dan tipe data ini berlaku untuk semua baris dalam tabel ini. Sebuah baris tabel adalah kumpulan data memiliki 1 entri untuk setiap kolom dalam tabel ini (setiap baris ini disebut dengan satu record).

PENGENALAN DB2

Pengertian DB2
DB2 adalah keluarga sistem manajemen database relasional (RDBMS) produk dari IBM yang melayani sejumlah sistem operasi yang berbeda platform. Menurut IBM, DB2 memimpin dalam hal pangsa pasar database dan kinerja. Meskipun produk DB2 yang ditawarkan untuk sistem berbasis UNIX dan sistem operasi komputer pribadi, DB2 jejak produk database Oracle dalam sistem berbasis UNIX dan Microsoft Access.

Perkembangan DB2 :
Akhir th. 70-an     : Riset penyusunan teknologi relasional
Th. 80-an     : Produk DB2 untuk VM, VSE, MVS, AS/400, OS/2
Th. 90-an     : Produk DB2 untukAIX, HP-UX, SOLARIS, NT, SINIX

Keunggulan DB2 :
–    Dapat dijalankan pada bermacam-macam platform
–    Menunjang client/server platform, aplikasi multimedia, object oriented
–    Dirancang untuk memperoleh informasi dalam bisnis berskala kecil maupun besar
–    Memiliki alat yang mengizinkan user membuat macam- macam aplikasi untuk mengakses dan bekerja dengan data.

DB 2 Product Family

DB2 Product Family.

IBM DB2 Family dari database management systems menangani ruang lingkup hardware platform yang besar mulai dari mainframe sampai dengan mesin-mesin yang berbasiskan Intel, server IBM dan non IBM RISC serta workstation, massively parallel processors, Sistem mid range AS/400, dan sistem mainframe yang dijalankan dengan sistem operasi VM, VSE dan MVS. Dengan tambahan database engines yang dijalankan pada setiap platform tersebut. DB2 family termasuk solusi “middleware” untuk pengaksesan basis data yang heterogen, replikasi data dan database systems management yang berjalan di seluruh platform.

Produk-produk DB2 yang dijalankan pada OS/2 dan platform yang berhubungan dengan produk tersebut dikenal sebagai versi DB2 Common Server. Hal ini untuk membedakan bahwa produk-produk tersebut dapat dijalankan pada platform yang sejenis, yang berisikan fungsi produk yang serupa dan menggunakan bersama source code yang sama.

Produk-produk DB2 Common Server merupakan client/server RDBMS untuk server IBM dan server non IBM, dan workstation yang berisikan fungsi-fungsi dimana aplikasi dapat dijalankan pada lingkungan client yang luas, fungsi-fungsi untuk menyimpan dan mengelola data, dan gateway yang mengizinkan pengaksesan data dengan SQL pada lingkungan yang heterogen.

 

SQL Data Language 

 

SQL (Structured Query Language) adalah sebuah bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini secara de facto merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Saat ini hampir semua server basis data yang ada mendukung bahasa ini untuk melakukan manajemen datanya.
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[1], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.

DB 2 Utility 
Gambar

Ada beberapa utility yang dapat digunakan sebagai alat pemelihara di DB2, diantaranya adalah REORG, RUNSTAT dan REBIND.
1. REORG
Utiliti ini berfungsi sebagai table reorganization. Sama seperti sistem operasi, seiring berjalannya waktu maka table dan index pun dapat terdefragementasi. Oleh karena itu perlu di reorganize kembali.
Syntaxnya
REORG TABLE
Contoh
REORG TABLE staff

2. RUNSTAT
Utiliti ini berfungsi untuk menunjukkan statistik dari sebuah database.
Syntaxnya
RUNSTAT ON TABLE
Contoh
RUNSTAT ON TABLE schema.staff>
3. REBIND
Utiliti ini memungkinkan user untuk membuat kembali package yang ada di database tanpa membutuhkan bind file.
Syntax
db2rbind database_alias –l
Contoh
db2rbind sample –l mylog.txt

DB2 Object 

Data Objects :
1.  Schema : kumpulan dari database object (table, view, index, application object).
Fungsi dari schema :
– Menyatakan indikasi kepemilikan objek dan relasi dengan aplikasi
– Secara logikal kelompok berkaitan dengan objek secara bersama
– Penggunaan schema : {schema_name}.{object_name}

2. Tables

Tipe data :

CLOB (Charcter Large Object) : biasa digunakan untuk menyimpan tulisan korea, jepang, mandarin
BLOB (Binary Large Object) : biasa digunakan untuk menyimpan gambar, video
DBCLOB (Double Byte Character Large Object)

  1. User Defined Types
    Digunakan untuk membuat tipe data sesuai dengan keinginan atau dibuat alias.
    Contoh :
    CREATE DISTINCT TYPE POUND AS INTEGER WITH COMPARISONS
    CREATE DISTINCT TYPE KILOGRAM AS INTEGER
    WITH COMPARISONS
    CREATE TABLE person
    (f_name varchar(30),
    weight_p POUND NOT NULL,
    weight_k KILOGRAM NOT NULL )
    SELECT F_NAME FROM PERSON
    WHERE weight_p > POUND(30)
    Contoh diatas ialah membuat weight_p menjadi alias POUND dan weight_k menjadi alias KILOGRAM.

 

  1. Null Values
    Menunjukkan bahwa sebuah atribut tidak memiliki data apapun.
    Contoh penggunaan :
    CREATE TABLE Staff (
    ID SMALLINT NOT NULL, NAME VARCHAR(9) ,
    DEPT SMALLINT not null with default 10,
    JOB CHAR(5) ,
    YEARS SMALLINT ,
    SALARY DECIMAL(7,2) ,
    COMM DECIMAL(7,2) with default 15

 

  1. System Catalog Tables
    – Setiap database memiliki system catalog table masing-masing
    – Meta data ini menyimpang objek database
    – Dapat meng-query table ini sama dengan table lainnya
    – Berada dalam tiga schema :
    * SYSIBM : base table, dioptimalkan untuk DB2
    * SYSCAT : dilihat berdasar table SYSIBM, dioptimalkan untuk kemudahan penggunaan
    * SYSSTAT : database statistik
    – Contoh :
    SYSCAT.TABLES
    SYSCAT.INDEXES
    SYSCAT.COLUMNS

 

  1. Sequence Objects
    Digunakan untuk automatic values, increment dan decrement.
    Syntax :
    CREATE SEQUENCE {nama sequence}
    START WITH {value}
    MAX VALUE {value} //unlimit, klo ngga disetting juga ok
    [ INCREMENT/DECREMENT ] BY {value}
    [ NO CYCLE/CYCLE ]
    Contoh :
    CREATE SEQUENCE myseq
    START WITH 1
    MAX VALUE 100
    INCREMENT BY 2
    NO CYCLE
    Cara penggunaan :
    – Currval (nilai sekarang) : 1
    – Nextval (nilai selanjutnya) : 3
    – Preval (nilai sebelumnya) : 1
    INSERT INTO TABLE VALUES(nextval from myseq)
    DROP sequence myseq

 

  1. Views
    Fungsi untuk efisiensi
    Data untuk View tidak disimpan terpisah
    Mendukung query bersarang
    Contoh :
    Connect to sample
    CREATE VIEW myview1
    AS SELECT name,phone,email
    FROM employee
    SELECT * FROM myview1

 

  1. Indexes
    Fungsinya untuk clustering (pengelompokan), jadi akan lebih cepat dalam proses searching.
    Karakteristik indexes :
    – Ascending dan descending
    – Unik dan non unik
    – Compound
    – Berkelompok

 

Pengenalan Oracle

Pengenalan Database Relational

ORACLE adalah database relational. Sebuah database relational merupakan kumpulan dari tabel-tabel. Tabel sendiri sering kita jumpai dalam kehidupan sehari-hari, misalnya laporan keuangan bulanan, daftar harga menu, grafik-grafik dan lain-lain. Masing-masing tabel mempunyai hubungan antara satu dengan yang lain, misalnya antara tabel ruas jalan tol dengan tabel kantor cabang, sehingga dia disebut relational.
Kumpulan kertas-kertas laporan yang menumpuk di atas meja atau yang ada di laci sebetulnya dapat disebut sebagai database juga. Namun dengan pengelolaan seperti ini, akan muncul masalah jika data yang dikelola volumenya besar, sehingga menyulitkan kita dalam mengelola data-data tersebut. Kemudian mungkin kita akan menggunakan fasilitas komputer, seperti menggunakan LOTUS atau EXCEL, tapi pada prinsipnya kesulitan pekerjaan pengelolaan kita tetap sama.
Sebuah Sistem Basis Data Relational (Relational Database Management System, disingkat RDBMS) seperti ORACLE pada prinsipnya merupakan sistem yang memungkinkan kita untuk:  
1. Memasukkan data.  
2. Mengelola data. 
3.Mengambil data

Computing Model 
                     

Oracle Corporation mengeluarkan produk Oracle 10g berbasis grid computing. Grid computing adalah arsitektur TI baru yang menghasilkan sistem informasi perusahaan yang berbiaya rendah dan lebih adaptif terhadap dinamika bisnis. Dengan grid computing, sejumlah komponen hardware dan software yang modular dan independen akan dapat dikoneksikan dan disatukan untuk memenuhi tuntutan kebutuhan bisnis. Lebih jauh, dari sisi ekonomi, implementasi grid computing berarti membangun pusat komputasi data yang tangguh dengan struktur biaya variatif yang bisa disesuaikan dengan kebutuhan. Grid computing adalah solusi dari masalah-masalah umum yang dihadapi perusahaan IT, permasalahan pada aplikasi yang menyebabkan hardware tidak berfungsi maksimal contohnya  kasus monolitik, yaitu sistem sulit digunakan karena mahalnya ongkos pengelolaan dan sulitnya dilakukan perubahan terhadap system juga masalah informasi yang terpisah pisah dan tidak bisa dimanfaatkan secara maksimal. Dalam mengadopsi grid computing, perusahaan tidak perlu mengambil langkah secara revolusioner, karena aplikasi yang sebelumnya telah dijalankan akan tetap bekerja seperti sebelumnya. Dan dimungkinkan pula untuk mengadopsi teknologi grid computing pada aplikasi yang telah dijalankan, bahkan tanpa memerlukan banyak penulisan ulang konfigurasi sistem.

 

Overview Perintah-Perintah SQL

 

Perintah Select

Perintah Select digunakan untuk :

Selection : memilih baris/record

Projection : memilih kolom/field

Join : mengambil data dari beberapa tabel yang berbeda

Syntax Select

SELECT [DISTINCT] {*,column[alias],..}

FROM table;

Contoh:

SELECT loc,deptno

FROM emp

OPERATOR ARITMATIKA

Derajat Operator :

– Perkalian dan Pembagian

– Penjumlahan dan Pengurangan

– Bila ada ( ) maka ekspresi didalamnya dilaksanakan terlebih dahulu

Contoh :

SELECT ename,sal,12*sal+100 FROM emp;

NILAI NULL

Adalah nilai yang tidak ada, tidak didefinisikan, tidak diterapkan dan tidak diketahui.

Nilai null ¹ 0 { zero}, null ¹ spasi {blank}

Contoh:

SELECT ename,job,sal,comm. FROM emp;

KOLOM ALIAS

Digunakan untuk merubah tampilan judul kolom.

Menggunakan AS atau “ “ {Double Qoute}

Contoh:

SELECT ename AS name, sal “salary” FROM emp;

OPERATOR GABUNGAN

Digunakan untuk menghubungkan kolom satu dengan kolom yang lain.

Menggunakan opertor gabungan { || }

Contoh:

SELECT ename || job AS employees

FROM emp;

KOLOM ALIAS DAN GABUNGAN

Digunakan untuk merubah tampilan judul kolom.

Menggunakan AS atau “ “ {Double Qoute}

Contoh:

1. SELECT ename AS name, sal salary FROM emp;

2. SELECT ename ||”is a”|| job AS “employee details”

FROM emp;

BARIS DUPLIKAT / GANDA

Syntax Select

SELECT [DISTINCT] {*,column[alias],..}

FROM table;

Contoh:

SELECT loc,deptno

FROM emp

SQL dan SQL*PLUS

Keistimewaan SQL :

Dapat digunakan oleh user baik yang berpengalaman atau tidak dalam pembuatan program

Merupakan bahasa non prosedural

Mengurangi sejumlah waktu untuk membuat dan memelihara sistem

Sintaksnya dalam bahasa Inggris

 

Interaksi Antara SQL Plus Dengan SQL

                          

Interaksi antara SQL*Plus dengan SQL

Contoh Cursor Variable: Master Table dan Details Table

Mari kita perhatikan stored procedure di bawah ini, yang mencari database dari perpustakaan utama untuk buku, majalah, dan tape. Tabel master menyimpan judul dan kode kategori (dimana 1=buku, 2=majalah, 3=tape) untuk setiap item. Tiga tabel detail menyimpan informasi spesifik dari setiap kategori. Ketika tipanggil, procedure tesrebut mencari tabel master berdasarkan judul, menggunakan kode kategori terkait untuk membuka perintah OPEN-FOR, lalu membuka cursor variable untuk query dari tabel detail yang tepat.

========================================================================

CREATE PACKAGE cv_types AS

TYPE LibCurTyp IS REF CURSOR;

END cv_types;

CREATE PROCEDURE find_item (

title VARCHAR2(100),

lib_cv IN OUT

cv_types.LibCurTyp)

AS

code BINARY_INTEGER;

BEGIN

SELECT item_code

FROM titles INTO code

WHERE item_title = title;

IF code = 1 THEN

OPEN lib_cv FOR SELECT * FROM books

WHERE book_title = title;

ELSIF code = 2 THEN

OPEN lib_cv FOR SELECT * FROM periodicals

WHERE periodical_title = title;

ELSIF code = 3 THEN

OPEN lib_cv FOR SELECT * FROM tapes

WHERE tape_title = title;

END IF;

END find_item;

 

SQL Statement VS SQL Plus Statement

 SQL adalah bahasa yang digunakan untuk berkomunikasi dengandatabase Oracle server dari sebuah tool atau aplikasi. Oracle SQL

terdiri dari beberapa bagian, ketika kita menjalankan perintah SQL,sql akan disimpan dalam suatu memory yang disebut SQL Buffer danakan tetap berada dalam memory sampai ada statemen baru.SQL *Plus adalah tool oracle yang mengenali dan menjalankanperintah SQL ke Oracle Server.

 

 

 

Contoh Perintah SQL Plus

Perintah PAUSE memungkinkan Anda untuk menampilkan baris kosong atau teks dengan penghentian sementara aksi dan menunggu RETURN untuk pengguna;

Perintah PROMPT mengirimkan sebuah baris kosong atau pesan pada layar;

ACCEPT variabel [NUMBER | CHAR | DATA]
[FORMAT format] [PROMPT text | NOPROMPT] [HIDE]   

Peninjauan:
– Jenis variabel default adalah CHAR;
– Teks PROMPT dicetak sebelum pengguna memberikan nilai yang sebenarnya;
– HIDE adalah pilihan yang membuat nilai yang diberikan oleh pengguna untuk disembunyikan;
– Pilihan menunjukkan FORMAT format string;
– Pergantian variabel, jika ada, tidak boleh digunakan dengan simbol “&”.

Contoh:
ACCEPT Alpha PROMPT ‘ number of copies: ‘
ACCEPT beta PROMPT ‘ author name ‘:
SELECT *
FROM the book
WHERE nrex = & alpha
AND author = ‘ & ‘ beta;

 

Variabel Substitusi

Pergantian variabel (& nama) digunakan untuk menyimpan nilai sementara.

Interface mengharuskan user untuk memberikan nilai setiap kali bertemu dengan sebuah variabel tidak terdefinisi.

Jika variabel didahului oleh simbol “& &”, hanya panggilan pertama yang akan meminta variabel substitusi (& nama) fimana digunakan untuk menyimpan nilai sementara. Variabel ini dapat terjadi di SQL perintah atau SQL * Plus.

Interface mengharuskan user untuk memberikan nilai setiap kali bertemu dengan sebuah variabel tidak terdefinisi. Jika variabel didahului oleh simbol “& &”, hanya panggilan pertama yang akan membutuhkan nilai.

Untuk variabel tipe karakter. Variabel substitusi dapat terjadi dalam kondisi WHERE, dalam klausa ORDER BY dalam ekspresi kolom, dalam nama tabel, bukan perintah SELECT keseluruhan.
 Contoh:
SELECT & kolom
FROM & tabel
WHERE & kondisi
ORDER BY & order;

Variabel tetap mengatur sampai salah satu meninggalkan SQL * Plus atau perintah UNDEFINE diberikan untuk variabel yang bersangkutan. Mencetak semua variabel, nilai-nilai dan jenis variabel tersebut harus diperoleh oleh bentuk DEFINE.

Contoh:
SQL > DEFINE autor1 = Brad
SQL > DEFINE autor2 = Stuart
SQL > SELECT title, nrex
FROM the book
WHERE author = ‘ & autor1 ‘
OR author = ‘ & autor2 ‘; 

 

PL/SQL

PLSQL

PL/SQL (Procedural Language/Structured Query Language) merupakan
pengembagan SQL oleh Oracle. Prasyarat mempelajari PL/SQL adalah paling tidak
mengetahui dasar-dasar SQL. Sebagai awalan belajar PLSQL, mari kita lihat contoh
kasus dan contoh blok PL/SQL berikut ini.
PL / SQL adalah salah satu dari tiga bahasa pemrograman kunci tertanam dalam Database Oracle, MOD_PLSQL Oracle HTTP Server (Apache) modul extension, bersama dengan SQL itu sendiri dan Jawa.

PL / SQL program unit (dasarnya kontainer code) dapat dikompilasi ke database Oracle. Pemrogram sehingga dapat menanamkan PL / SQL unit fungsionalitas ke dalam database secara langsung. Mereka juga dapat menulis skrip yang berisi PL / SQL program unit yang dapat membaca ke database menggunakan Oracle .Setelah unit program telah disimpan ke dalam database, mereka menjadi tersedia untuk eksekusi di lain waktu.

Keuntungan Penggunaan PL/SQL
– Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang dapat digunakan bersama-sama dalam bentuk stored procedure
– Peningkatan Kinerja
– Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok dalam satu perintah yang secara drastis dapat menurunkan trafik jaringan
– Modular. Bentuk modular memungkinkan banyak kemudahan yang dapat diperoleh
– Portable. PL/SQL adalah sarana yang asli dimiliki oleh Oracle Server, artinya, program PL/SQL dapat dengan mudah dipindahkan dari satu Oracle Server ke Oracle Server lainnya, meskipun dengan OS atau platform yang berbeda.
– Dapat mendeklarasikan Variable
– Dapat berupa Variable, Constant, Cursor dan Exception
– Penggunaan variable/identifier sangat memudahkan dalam membuat suatu perintah. Misalkan untuk membaca hasil suatu perintah SELECT untuk diproses dan hasilnya digunakan untuk melakukan proses lainnya
– Dapat menggunakan Struktur Kontrol :LOOP, FOR, WHILE
– Dapat menangani Error
– Error bisa dihasilkan/dibangkitkan oleh Oracle
– Server atau bisa dibangkitkan sendiri dengan sengaja
– Untuk mengantisipasi berbagai hal yang barangkali sulit untuk ditangani secara langsung menggunakan kontrol program

 

SQL PLUS dan PLSQL

• PL/SQL (Procedural Language/Structure Query Language)
– Adalah suatu blok yang berisi skrip-skrip bahasa prosedural.
• PL/SQL merupakan bahasa pemrograman prosedural
• PL/SQL dapat meningkatkan kinerja database
Tipe Data dasar :
• Numerik
– NUMBER, BINARY_INTEGER, DEC, DOUBLE PRECISION, INTEGER, INT, NUMERIC, REAL, SMALLINT
• Karakter
– VARCHAR2, CHAR, LONG
• DATE
• BOOLEAN
• ROWID

Tipe Data tambahan :
• RECORD
• ARRAY
VARIABLE
• Adalah sebuah peubah yang digunakan untuk menampung sebuah nilai di memori komputer.
CONTOH VARIABLE
DECLARE
X integer;
Alamat varchar2(40);
No_induk char(8);
…..
BEGIN
X := 12;
Alamat := ‘Gelatik Dalam 391, Bandung’;
No_induk := ‘DOG29549’;
END;
KONSTANTA
• Digunakan untuk menyimpan sebuah nilai di memori komputer.
• Nilai yang disimpan bersifat tetap (konstan)

Contoh :
DECLARE
pi CONSTANT real := 3.14;
lebar CONSTANT integer := 100;
KOMENTAR
• Digunakan untuk memudahkan proses maintenance
• Jenis komentar :
– /* … */ : untuk beberapa baris komentar
– — … : untuk satu bari komentar

Contoh :
/* Ini adalah komentar Oracle */
— Ini juga komentar Oracle

 

STRUKTUR BLOK
• Terdapat tiga bagian :
• Bagian pendeklarasian tipe data (opsional)
– Bagian penulisan perintah
– Bagian eksepsi (opsional)
BENTUK UMUM
DECLARE
variabel tipe_data;
konstanta CONSTANT tipe_data := nilai;

BEGIN
statement_1;
statement_2;

EXCEPTION
WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;

END;
CONTOH PALING SEDERHANA
BEGIN
DBMS_OUTPUT.PUT_LINE(‘Belajar Oracle’);
END;

Catatan:
Untuk melihat hasil, setting terlebih dahulu variabel sistem SERVEROUTPUT dengan menuliskan :
SET SERVEROUTPUT ON
CONTOH DENGAN EKSPESI
SET SERVEROUTPUT ON
DECLARE
X Integer;
BEGIN
X := ‘Belajar Oracle’;
DBMS_OUTPUT.PUT_LINE( TO_CHAR(X) );
EXCEPTION
WHEN VALUE_ERROR THEN
DBMS_OUTPUT.PUT_LINE (‘Kesalahan pada pengisisan
nilai’);
END;

SQL

PENGENALAN SQL

 

Pengertian SQL

Structured Query Language (SQL) merupakan script yang digunakan untuk melakukan komunikasi dengan Database. SQL juga merupakan bahasa standar yang digunakan untuk RDBMS (Relational DataBase Management Systems). SQL dibangun di laboratorium IBM-San Jose California sekitar akhir tahun 70-an. Pertama kali dikembangkan sebagai bahasa di produk database DB2 yang sampai saat ini merupakan produk database andalan IBM. SQL sering di lafalkan dengan “sequel”.

Saat ini organisasi standar America (ANSI) menetapkan standar bahasa SQL yaitu ANSI-92 standard. Masing-masing vendor database memiliki dialeknya sendiri sebagaian besar spesifikasinya mengacu pada standar ANSI tersebut dengan berbagai ekstensi tambahan. SQL Server menggunakan bahasa Transact-SQL dalam produknya, sedangkan Oracle menggunakan PL/SQL.

Dengan SQL kita tidak perlu memperdulikan Database apa yang akan kita gunakan, sebab semua database tersebut akan mengerti jika menggunakan SQL. Database Relationals yang menggunakan bahasa SQL diantaranya Oracle,  Sybase, Microsoft SQL Server, FireBird, Acces, Ingres dan MYSQL

 

Tabel Pada SQL

Suatu database berisi dari satu atau lebih tabel. Setiap tabel diberi nama tertentu yang berhubungan dengan isinya, contohnya tabel yang isinya mengenai data pelanggan diberi nama tabel Customers. Tabel itu sendiri berisi dari satu atau sekumpulan record. Record adalah satu baris data yang dibentuk oleh satu atau beberapa field. Nah, field-field inilah yang berisi data. Berikut ini adalah contoh dari suatu tabel yang berisi data. Berikut ini adalah contoh dari tabel yang bernama ‘Karyawan’.

 

 

 

 

 

 

Tabel di atas terdiri dari tiga buah record. Masing-masing record terdiri dari empat buah field (LastName, FirstName, Address, City).

 

Mengenal DDL Pada SQL

DDL merupakan singkatan dari Data Definition Language yang juga bagian dari SQL. DDL ini berfungsi lebih ke dalam memanipulasi struktur dari database. Contohnya DDL ini bisa digunakan untuk membuat tabel atau menghapus tabel. Kita juga bisa membuat key atau index dengan menggunakan DDL ini, membuat relasi antar tabel juga bisa dilakukan dengan DDL ini.

Beberapa statemen atau sintaks yang sering dijumpai dalam DDL adalah sebagai berikut:

CREATE TABLE, bertugas untuk membuat table

ALTER TABLE, bertugas untuk merubah struktur suatu table

DROP TABLE, bertugas untuk menghapus suatu table

CREATE INDEX, bertugas untuk membuat suatu index dalam table

DROP INDEX, bertugas untuk menghapus suatu index dalam tabel.

1.             CREATE TABLE

Fungsi : membuat tabel

Sintaks :                CREATE TABLE tbname

(col 1                      data type               data spec,

                                 col 2             data type        data spec,

 .

 .

                                 PRIMARY KEY (col1,……))

 

Contoh :

CREATE TABLE PERSONEL

(REGNO                CHAR(10)            NOT NULL,

 NAME                  CHAR(45)            NOT NULL,

 ADDRESS            CHAR(45),

 BIRTH DATE    NOT NULL WITH DEFAULT,

 PRIMARY KEY (REGNO))

NULL

Spesifikasi             NULLNOT NULLNOT NULL WITH DEFAULT

 

NULL :  

dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol)

NOT NULL

pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record

NOT NULL WITH DEFAULT :

nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.

 

Nilai default-nya :

                Nol                                          untuk tipe field NUMERIC

                Blank                                     untuk tipe field CHARACTER

                CURRENT DATE               untuk tipe field DATE 

                CURRENT TIME                untuk tipe field TIME

 

Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah kolom.

 

2.             CREATE VIEW

Fungsi : membuat tabel view.

View merupakan bentuk alternatif  penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan.

 

Tujuan membuat view :

Meningkatkan keamanan data

Meningkatkan kemandirian data

Penyederhanaan bagi end user (data yang sedikit, nama-nama kolom yang baru dan dapat dibaca dengan lebih baik)

 

Properti :

Tidak terdapatnya data tambahan

View mencakup subset kolom dan / atau baris

View dapat berisikan data dari beberapa tabel dan / atau tabel-tabel view lainnya

View dapat berisikan perolehan data, misal : nilai rata-rata

Manipulasi data melalui view terbatas

 

Sintaks :                CREATE VIEW  viewname (column1, column2, ……..)

  AS SELECT statement FROM tbname

[WITH CHECK OPTION]

 

Keterangan :

                View-name  : nama view yang akan dibuat.

                Column     : nama atribut untuk view

                Statement    : atribut yang dipilih dari tabel basis data.

                Tabel-name : nama tabel basis data.

Contoh :

                                CREATE VIEW VPERSON (REGNO, NAME) AS

SELECT  REGNO, NAME FROM PAUL.PERSONEL

 

CREATE INDEX

Fungsi : membuat index

Sintaks :                CREATE [UNIQUE] INDEX indexname

                                                ON nama_table (nama_kolom)

Contoh :

CREATE UNIQUE INDEX PRSONIDX

                                ON PERSONEL(REGNO)

 

Dengan indeks memungkinkan suatu tabel diakses dengan urutan tertentu tanpa harus merubah urutan fisik dari datanya dan dapat pula diakses secara cepat melalui indeks yang dibuat berdasar nilai field tertentu. Spesifikasi  UNIQUE akan menolak key yang sama dalam file.

 

4.             DROP TABLE

Fungsi : menghapus Tabel

 

Sintaks :                DROP TABLE tbname

 

Contoh :                DROP TABLE PERSONEL

 

Dengan perintah itu obyek lain yang berhubungan dengan tabel tersebut otomatis akan dihapus atau tidak akan berfungsi seperti :

–               semua record dalam tabel akan terhapus

–               index dan view pada tabel akan hilang

–               deskripsi tabel akan hilang

 

5.             DROP VIEW

Fungsi : menghapus view

Sintaks :   DROP VIEW viewname

Contoh :                DROP VIEW VPERSON

 

6.             DROP INDEX

Fungsi : menghapus index

Sintaks :                DROP INDEX indexname

 

Contoh :                DROP INDEX PRSONIDX

 

7.             ALTER 

Fungsi : merubah atribut pada suatu tabel

 

 

Mengenal DML Pada SQL

SQL adalah sekumpulan sintaks-sintaks atau statemen untuk mengakses data dalam database, tetapi SQL sendiri juga bisa digunakan untuk melakukan proses insert, update atau delete ke dalam suatu database. Sintaks-sintaks ini yang disebut dengan Data Manipulation Language (DML) yang merupakan bagian dari SQL. Berikut ini adalah penjelasan singkat dari sintaks-sintaks tersebut.

SELECT,  bertugas untuk mengakses data dari suatu tabel dalam database

UPDATE, bertugas untuk mengupdate (merubah) data dalam suatu tabel pada database.

DELETE,           bertugas untuk menghapus data dari suatu tabel dalam database

INSERT, bertugas untuk menambahkan data ke dalam suatu tabel dalam  database.

 

=            INSERT

Sintaks  :               INSERT INTO

                nama_tabel[(nama_kolom1, …)]

                                VALUES(data1, …);

                Contoh  :              

1). Masukkan data mata kuliah Berkas Akses dengan

 kode KK222 dan besarnya 2

INSERT INTO MKUL

VALUES(“KK222”, ”Berkas Akses”, 2);   

2).           INSERT INTO NILAI(npm,kdmk,mid)

                VALUES(“32296222”,”KK222”,30);

 

=            UPDATE

Sintaks  :               UPDATE nama_tabel

                SET nama_kolom = ekspresi

                WHERE kondisi;

    Contoh              :              

    1).Ubah alamat menjadi “Depok” untuk mahasiswa yang memiliki npm “50096487”

UPDATE MHS SET  alamat=”Depok”

WHERE npm=”50096487”;

2).           UPDATE NILAI SET mid=mid+10

WHERE kdmk=”KK021”;

 

=            DELETE

Sintaks  :               DELETE FROM nama_tabel

                WHERE kondisi

Contoh  :              

Hapus data nilai mata kuliah “KK021” bagi mahasiswa

yang mempunyai npm ”10296832”

DELETE FROM NILAI WHERE 

npm=”10296832” AND kdmk=”KK021”;

=            SELECT

Sintaks  :   SELECT [DISTINCT] nama_kolom

FROM nama_tabel

[ WHERE kondisi ]

[ GROUP BY nama_kolom ]

[ HAVING kondisi ]

[ ORDER BY nama_kolom [ASC/DESC]]

 

 

Contoh

Satu tabel ( Simple Query )

               

1).           Tampilkan semua data mahasiswa

                SELECT npm,nama,alamat

                                FROM  MHS;

atau

SELECT * FROM MHS;

 

  Hasil :

 

npm

nama

alamat

10296832

Nurhayati

Jakarta

10296126

Astuti

Jakarta

31296500

Budi

Depok

41296525

Prananingrum

Bogor

50096487

Pipit

Bekasi

21196353

Quraish

Bogor

 

2).           Tampilkan mata kuliah yang sks-nya 2

SELECT mtkuliah FROM MKUL

               WHERE  sks = 2;

 

Hasil :

 

mtkuliah

P. Basis Data

Pancasila

 

SELECT * FROM nilai

                                                WHERE mid >= 60 OR final > 75;

 

SELECT npm, kdmk, mid FROM nilai

WHERE mid BETWEEN 70 AND 100;

 

3).           Tampilkan nama mahasiswa yang diawali dengan huruf “P”

SELECT nama FROM MHS

WHERE nama LIKE “P%”;

 

Hasil :

 

nama

Prananingrum

Pipit

 

SELECT nama FROM MHS

                                WHERE nama NOT LIKE “%a%”;

 

SELECT nama FROM MHS

                                WHERE nama LIKE “_u%”;

 

4).  Tampilkan alamat mahasiswa, dimana alamat

yang sama hanya ditampilkan satu kali saja

               

                SELECT DISTINCT alamat FROM MHS;

 

Hasil :

 

alamat

Jakarta

Depok

Bogor

Bekasi

 

 

5).           Tampilkan semua data mahasiswa dengan nama

                terurut dari “Z” ke “A”

 

SELECT * FROM MHS ORDER BY nama DESC;

               

Hasil :

 

npm

nama

alamat

21196353

Quraish

Bogor

41296525

Prananingrum

Bogor

50096487

Pipit

Bekasi

10296832

Nurhayati

Jakarta

31296500

Budi

Depok

10296126

Astuti

Jakarta

 

Tampilkan alamat mahasiswa dan jumlah masiswa yang bertempat tinggal di alamat  tersebut

 

SELECT alamat, COUNT(*) FROM MHS

                                GROUP BY alamat;

 

Hasil :

 

alamat

COUNT(*)

Jakarta

2

Depok

1

Bogor

2

Bekasi

1

 

Tampilkan alamat dan jumlah mahasiswa yang bertempat tinggal pada alamat yang jumlahnya lebih dari satu

 

SELECT alamat, COUNT(*) FROM MHS

                                                GROUP BY alamat

HAVING COUNT(*) > 1;

 

Hasil :

 

alamat

COUNT(*)

Jakarta

2

Bogor

2

 

6).           Tampilkan nilai Midtest tertinggi dan terendah untuk mata kuliah “KD132”

 

SELECT MAX(mid), MIN(mid) FROM NILAI

WHERE kdmk=”KD132”;

 

Hasil :

 

MAX(mid)

MIN(mid)

80

40

 

 

Tampilkan rata-rata dan jumlah nilai final test

                mata kuliah “KD132”

 

SELECT AVG(final), SUM(final) FROM NILAI

WHERE kdmk= ”KD132”;

 

 

Hasil :

 

AVG(final)

SUM(final)

40

120

 

 

 

     DCL

Perintah yang digunakan untuk mengatur perijinan akses terhadap database.

Perintah yang digunakan GRANT,REVOKE

1.             GRANT 

Fungsi : digunakan untuk memberikan izin akses kepada user

 

Sintaks :                GRANT privileges ON tbname TO user

 

Contoh :

                                GRANT SELECT ON CLUB TO PUBLIC

                                GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER01

 

2.             REVOKE

Fungsi : digunakan untuk mencabut izin akses kepada user

 

Sintaks :                REVOKE privileges ON tbname FROM user

 

Contoh :

                                REVOKE INSERT, UPDATE, DELETE ON CLUB FROM USER01

                                REVOKE ALL ON CLUB FROM PUBLIC.

 

MODEL DATA RELASIONAL

Pengertian Model Data Relasional

 

Model Data Relasional adalah suatu model basis data yang menggunakan tabel dua dimensi,  yang terdiri atas baris dan kolom untuk menggambarkan sebuah berkas data.

 

Model ini menunjukkan cara mengelola/mengorganisasikan data secara fisik dalam memory sekunder, yang akan berdampak pula pada bagaimana kita mengelompokkan data dan membentuk keseluruhan data yang terkait dalam sistem yang kita buat.

 

Contoh Tabel dan keterhubungannya :

 

MHS

NPM Nama Alamat
10296832 Nurhayati Jakarta
10296126 Astuti Jakarta
31296500 Budi Depok
41296525 Prananingrum Bogor
50096487 Pipit Bekasi
21196353 Quraish Bogor

 

MKUL

KDMK MTKULIAH SKS
KK021 P. Basis Data 2
KD132 SIM 3
KU122 Pancasila 2

 

NILAI

NPM KDMK MID FINAL
10296832 KK021 60 75
10296126 KD132 70 90
31296500 KK021 55 40
41296525 KU122 90 80
21196353 KU122 75 75
50095487 KD132 80 0
10296832 KD132 40 30

 

Keuntungan Model Data Relasional

 

Bentuknya sederhana

Mudah melakukan berbagai operasi data (query, update/edit, delete).

 

Contoh-contoh model basis data:

 

Model basis data hirarki

Model basis data network/jaringan

Model basis data relational (paling banyak digunakan)

 

Contoh DBMS yang mengelola basis data relational :

 

dBase III+

MS.Access

Borland-Paradox

Oracle

DB2

SYBASE

Informix.

 

 

Contoh Pembuatan Tabel.

 

MKUL

KDMK MTKULIAH SKS
KK021 P. Basis Data 2
KD132 SIM 3
KU122 Pancasila 2

 

Karakteristik dari tabel MKUL:

data mata kuliah memiliki 3 buah kolom data

kolom 1 berisi adta string/alphanumerik dengan lebar tetap, yaitu 5 digit/char.

Kolom 2 berisi data string dengan lebar maksimum 30 digit.

Kolom 3 berisi data integer dengan lebar maksimum 1 digit.

 

Dari karakteristik di atas, kita bisa menetapkan struktur data tabel MKUL:

nama kolom/field.

Tipe data.

Lebar (banyaknya dgiti maksimum yang bisa ditampung).

 

Jadi, struktur tabel MKUL :

 

Nama Kolom Tipe Lebar
KDMK Char 5
MTKULIAH Char 30
SKS numerik 1

 

 

 

Istilah dalam Model Data Relasional :

 

Relasi:

Sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris.

 

Atribut:

Kolom pada sebuah relasi (field).

 

Tupel

Baris pada sebuah relasi (record).

 

Domain

Kumpulan nilai yang valid untuk satu atau lebih atribut

 

Derajat (degree)

Jumlah atribut dalam sebuah relasi (jumlah field)

 

Cardinality

Jumlah tupel dalam sebuah relasi (jumlah record)

 

 

atribut

MHS

 

Baris

NPM

Nama Alamat
10296832 Nurhayati Jakarta
 

Cardinality

10296126

Astuti Jakarta
31296500 Budi Depok
41296525 Prananingrum Bogor
50096487 Pipit Bekasi
21196353 Quraish Bogor

 

Domain

 

Derajat (degree)

 

Relational Key

 

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

 

Contoh: Untuk tabel MHS di atas, super key-nya:

NPM

NAMA (dengan syarat tidak ada nama yang sama)

ALAMAT (dengan syarat tidak ada alamat yang sama)

NPM + NAMA

NPM + ALAMAT

NAMA + ALAMAT

NPM + NAMA + ALAMAT

 

Candidate key

 

Atribut di dalam relasi yang biasanya mempunyai nilai unik  (super key dengan jumlah field yang paling sedikit)

 

Maka, candidate key-nya adalah NPM, NAMA dan ALAMAT (karena hanya terdiri dari 1 field saja)

 

Primary key

 

Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam relasi

 

Maka, primary key yang dipilih adalah NPM (unik, tidak ada NPM yang sama).

 

Alternate key

 

Candidate key yang tidak dipilih sebagai primary key

 

Maka, candidate key-nya NAMA dan ALAMAT

 

Foreign key

 

Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa

 

 

 

Alternate key         Candidate Key

Primary key

 

MHS

NPM Nama Alamat
10296832 Nurhayati Jakarta
10296126 Astuti Jakarta
31296500 Budi Depok
41296525 Prananingrum Bogor
50096487 Pipit Bekasi
21196353 Quraish Bogor

 

 

Relational Integrity Rules

 

Null

Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut

 

Entity Integrity

Tidak ada satu komponen primary key yang bernilai null.

 

Referential Integrity

Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan.

 

 

 

Bahasa Pada Model data Relasional

 

Menggunakan bahasa query, yaitu pernyataan yang diajukan untuk mengambil informasi

 

Terbagi 2 :

 

Bahasa Query Formal

 

Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis.

Terbagi 2, yaitu:

a. Prosedural, yaitu pemakai memberi spesifikasi data apa yang dibutuhkan dan bagaimana cara mendapatkannya.

 

Contoh:

Aljabar Relasional , yaitu dimana query diekspresikan dengan cara menerapkan operator tertentu terhadap suatu tabel / relasi.

 

b. Non Prosedural, yaitu pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.

 

Contoh:

Kalkulus Relasional, dimana query menjelaskan set tuple yang diinginkan dengan cara menjelaskan predikat tuple yang diharapkan.

 

Terbagi 2 :

Kalkulus Relasional Tupel

Kalkulus Relasional Domain

 

Bahasa Query Komersial

 

Bahasa Query yang dirancang sendiri oleh programmer   menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).

 

Contoh :

 

QUEL

Berbasis pada bahasa kalkulus relasional

QBE

Berbasis pada bahasa kalkulus relasional

 

SQL

Berbasis pada bahasa kalkulus relasional dan    aljabar relasional