Jumat, 17 Mei 2019

Tugas Basis Data

Basis Data

Primary key 

adalah field dari suatu tabel yang menunjukkan bahwa field yang menjadi kunci tersebut tidak bisa diisi dengan data yang sama. Primary key menjadikan record memiliki identitas sendiri-sendiri yang membedakan satu sama lainnya (unik). Untuk lebih jelasnya, perhatikanlah gambar dibawah ini.
Hasil gambar untuk contoh primary key 



Foreign key



Secara sederhana, foreign key dapat diartikan sebagai kunci asing. Definisi tersebut juga berlaku dalam pengolahan relasional database. Kunci asing (Foreign Key) adalah sebuah atribut atau gabungan atribut yang terdapat dalam suatu tabel yang digunakan untuk menciptakan hubungan (relasi) antara dua tabel.
Gambar terkait



Perbedaan Primary Key dan Foreign Key


Perbedaan Primary Key dan Foreign Key

Setelah mengetahui definisi dari primary key dan foreign key, Anda sudah dapat menyimpulkan perbedaan yang dimiliki kedua istilah tersebut. Dalam relasional database, maka setiap tabel hanya dapat memiliki sebuah primary key. Berbeda dengan foreign key, setiap tabel dapat memiliki banyak foreign key.

Masih banyak lagi perbedaan yang dimiliki primary key dan foreign key. Berikut akan dijelaskan mengenai perbedaan keduanya.

a. Primary Key

  1. Kunci utama mendefinisikan nilai tuple dalam sebuah tabel. Kunci utama juga dapat dikatakan sebagai atribut tunggal dalam tabel. Dengan begitu, nilai dari kunci utama tidak boleh berubah. Sebab, perubahan nilai pada primary key malah akan menciptakan kebingungan.
  2. Hal yang menjadi perbedaan utama antara primary key dengan foreign key adalah nilai yang digunakan dalam primary key tidak boleh NULL. Maksudnya adalah record tersebut harus diisi dengan nilai (tidak boleh kosong). Jika nilai atribut primary key mengandung NULL, maka Anda tidak dapat mengidentifikasi record yang terdapat dalam tabel tersebut.
  3. Dalam primary key, Anda dapat membuat clustered index secara otomatis. Maksudnya Anda dapat mengurutkan data yang akan disimpan dalam database.
  4. Kunci utama merupakan kombinasi antara UNIQUE dan NOT NULL. Hal itu menyebabkan tidak adanya nilai duplikat yang boleh dimiliki kolom untuk didefinisikan sebagai kunci utama, terutama dalam mengolah relasional database.
  5. Anda dapat menambahkan nilai baru ke atribut primary key, walaupun kunci asing tidak memiliki nilai baru dalam kolomnya.
  6. Anda tidak dapat menghapus nilai dari primary key dari tabel pertama (parent). Untuk itu, Anda harus menghapus atribut yang disebut dengan foreign key di dalam tabel kedua atau child.

b. Foreign Key

  1. Foreign key merupakan suatu field dalam satu tabel yang digunakan untuk menghubungkan dua tabel. Dengan begitu, foreign key merujuk pada suatu kolom yang unik untuk mengidentifikasi baris dari satu tabel yang sama atau berbeda.
  2. Berbeda dengan primary key yang nilainya tidak boleh NULL. Foreign key dapat menerima nilai NULL. Oleh karena itu, foreign key tidak memiliki fungsi untuk mengidentifikasi record yang terdapat dalam tabel. Selain itu, foreign key juga dapat menerima nilai yang duplikat.
  3. Di dalam foreign key tidak terdapat clustered index. Namun, Anda dapat melakukannya dengan manual.
  4. Anda tidak dapat menambahkan nilai ke dalam foreign key, jika nilai tersebut tidak tersedia di kolom primary key. Sebab, syarat nilai dalam foreign key merupakan nilai rujukan dari kolom primary key.
  5. Anda dapat menghapus suatu nilai yang berasal dari kolom foreign key tanpa mengganggu record yang lain, dan juga tanpa harus mengetahui apakah nilai terseb☺☺☺☺☺☺☺ut merupakan nilai yang dirujuk dari primary key atau tidak.
Itulah penjelasan mengenai pengertian foreign key, fungsinya beserta perbedaan yang dimiliki primary key dengan foreign key. Penulis berharap artikel diatas dapat membantu Anda mengetahui foreign key dengan jelas sehingga Anda dapat menetapkan foreign key yang berasal dari rujukan primary key.

DDL ( Data Definition Language )
Merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database. Jadi, DDL adalah kumpulan perintah SQL yang digunakan untuk membuat (create), mengubah (alter) dan menghapus(drop) struktur dan definisi tipe data dari objek-objek database. DDL juga merupakan kelompok perintah yang berfungsi untuk mendefinisikan atribut-atribut database, table, atribut kolom, batasan - batasan terhadap suatu atribut serta hubungan antar table.

DML ( Data Manipulation Language )
Merupakan sekumpulan perintah SQL yang digunakan untuk memanipulasi dan melakukan pengelolaan data base, seperti membuat baru, menambah, menghapus dan menampilkan  data base. Perintah utama DML adalah Update (Pembaruan data), Delete (Menghapus), Insert (Memasukan data), Select (Memilih dan menampilkan data)



Normalisasi Database

Normalisasi database terdiri dari banyak bentuk, dalam ilmu basis data ada setidaknya 9 bentuk normalisasi yang ada yaitu 1NF, 2NF, 3NF, EKNF, BCNF, 4NF, 5NF, DKNF, dan 6NF. Namun dalam prakteknya dalam dunia industri bentuk normalisasi ini yang paling sering digunakan ada sekitar 5 bentuk.

Normal Form

Data yang direkam dan dimasukkan secara mentah dalam suatu tabel pada bentuk ini sangat mungkin terjadi inkonsistensi dan anomali data

Contoh Normal Form

IDBuku
Judul_buku
Tgl_Terbit
IDPenerbit
Nama_Penerbit
Alamat
ID_Peminjam
NamaPeminjam
Alamat_Peminjam
PJ1
Pengantar Statistika
22-maret-08
K20
PT Adi Darma
Jakarta
OR1
Samuel Fransisko
Bekasi
PJ2
Struktur Data
17-mei-16
K25
PT Pustaka Abadi
Jaka
OR2
Ahmad Rizal
Bekasi


Pada bentuk ini ada beberapa ciri ciri yang penting, yang pertama adalah akan terjadi anomali dalam insert, update, dan delete. Hal ini menyebabkan beberapa fungsi DML dalam SQL tidak dapat berjalan dengan baik. Sebagai contoh jika ingin menghapus penerbit maka data judul buku akan ikut terhapus begitu juga jika ingin menghapus peminjam, maka data penerbit dan buku yang harusnya tidak terhapus akan ikut hilang.

First Normal Form (1NF)

Bentuk normal yang pertama atau 1NF mensyaratkan beberapa kondisi dalam sebuah database, berikut adalah fungsi dari bentuk normal pertama ini.

·         Menghilangkan duplikasi kolom dari tabel yang sama.

·         Buat tabel terpisah untuk masing-masing kelompok data terkait dan mengidentifikasi setiap baris dengan kolom yang unik (primary key).

Contoh Normalisasi Database 1NF
Normalisasi Database 1NF


Pada intinya bentuk normalisasi 1NF ini mengelompokkan beberapa tipe data atau kelompok data yang sejenis agar dapat dipisahkan sehingga anomali data dapat di atasi. Contoh adalah ketika kita ingin menghapus, mengupdate, atau menambahkan data peminjam, maka kita tidak bersinggungan dengan data buku atau data penerbit. Sehingga inkonsistensi data dapat mulai di jaga.

Second normal form (2NF)

Syarat untuk menerapkan normalisasi bentuk kedua ini adalah data telah dibentuk dalam 1NF, berikut adalah beberapa fungsi normalisasi 2NF.

·         Menghapus beberapa subset data yang ada pada tabel dan menempatkan mereka pada tabel terpisah.

·         Menciptakan hubungan antara tabel baru dan tabel lama dengan menciptakan foreign key.

·         Tidak ada atribut dalam tabel yang secara fungsional bergantung pada candidate key tabel tersebut.

Contoh normalisasi database bentuk 2NF
Contoh Normalisasi Database 2NF


Contoh di atas kita menggunakan tabel bantuan yaitu tabel transaksi, pada intinya bentu kedua ini adalah tidak boleh ada field yang berhubungan dengan field lainnya secara fungsional. Contoh Judul Buku tergantung dengan id_Buku sehingga dalam bentuk 2NF judul buku dapat di hilangkan karena telah memiliki tabel master tersendiri.

Third Normal Form (3NF)

Normalisasi database dalam bentuk 3NF bertujuan untuk menghilangkan seluruh atribut atau field yang tidak berhubungan dengan primary key. Dengan demikian tidak ada ketergantungan transitif pada setiap kandidat key. Syarat dari bentuk normal ketiga atau 3NF adalah :

·         Memenuhi semua persyaratan dari bentuk normal kedua.

·         Menghapus kolom yang tidak tergantung pada primary key.

Contoh Normalisasi Database Bentuk 3NF

Tidak semua kasus atau tabel dapat kita sesuaikan dengan berbagai bentuk normalisasi ini, untuk contoh 3NF kita akan mengambil contoh dari tabel order.
Normalisasi Database Bentuk 3NF


Pada tabel pertama di atas, apakah semua kolom sepenuhnya tergantung pada primary key? tentu tidak, hanya saja ada satu field yaitu total yang bergantung pada harga dan jumlah, total dapat dihasilkan dengan mengalikan harga dan jumlah. Bentuk 3NF dalam tabel di atas dapat dilakukan dengan membuang field Total.

Bentuk SQL

SELECT ORDERID, HARGA, JUMLAH, TOTAL
FROM ORDER

Menjadi

SELECT ORDERID, HARGA*JUMLAH AS TOTAL
FROM ORDER
Terima Kasih :)