Tampilkan postingan dengan label sql. Tampilkan semua postingan
Tampilkan postingan dengan label sql. Tampilkan semua postingan

9 MySQL - Integrity Constraint pada Database

logo mysql 

 

Salah satu keunggulan dari sebuah relational database adalah  adanya integritas data antara entitas, yang mana ini hal ini akan dapat menjaga kualitas data menjadi lebih baik karena data tidak dapat begitu saja dihapus secara sembarangan.


Integrity Constraint merupakan aturan yang digunakan untuk menjaga kualitas informasi yang ada dalam database. Integrity Constraint akan memastikan ketika terjadi proses Insert, Update dan Delete pada tabel proses tersebut tidak akan membuat integritas data menjadi rusak sehingga data tetap akurat untuk digunakan dan juga mencegah terjadinya kerusakan dalam database


Baca Juga: Data Definition Language (DDL)


Berdasarkan buku Connoly (2010), Integrity Constraint dapat dibagi menjadi 5 bagian yaitu: Required Data, Domain Constraint, Entity integrity Constraints, Referential Integrity Constraints, dan General Constraint



Jenis Integrity Constraint

 

Required Data

Artinya ketika kita membuat database, ada data yang harus diisi dan tidak boleh bernilai null. Data tersebut biasanya merupakan utama yang bersifat penting dan tentunya tergantung kebutuhan dari sistem apa yang akan dibuat. Data seperti transaksi sudah pasti kita harus mencatat tanggal transaksinya, jumlah transaksinya, jenis barangnya dan user yang melakukan transaksi. Tentunya data seperti yang sudah disebutkan diatas tidak boleh dikosongkan

 


Domain Constraints

Merupakan nilai yang diijinkan untuk digunakan oleh sebuah atau banyak atribut, biasanya atribut ini saling berkaitan antara satu dengan yang lainnya, jadi masih saling terhubung. Misalnya dalam menuliskan kode sebuah produk, biasanya untuk produk dalam perusahaan kodenya memiliki arti misalnya huruf awal (K) untuk kode gudang, dua angka selanjutnya (10) untuk nomor rak dan dua angka terakhir untuk nomor produk (11) jadinya K1011.


Baca Juga: Jenis - jenis Key Atau Kunci dalam Relational Database



Entity integrity Constraints

Aturan ini ditunjukan untuk pembuatan pada sebuah Primary Key pada sebuah tabel. Tentu saja karena Primary Key menjadi sebuah identitas atau identifier dari sebuah tabel, Primary Key yang dibuat di sebuah tabel tidak boleh dan dan tentunya tidal boleh bernilai Null.


Primary Key harus menjadi nilai yang unik dari sebuah tabel dan tidak ada item di tabel yang sama dapat memiliki primary key yang sama, karena jika ada memiliki primary key sama maka akan menyulitkan dalam proses terjadinya transaksi


 

Referential Integrity Constraints

Aturan Referential Integrity Ditunjukan untuk penggunaan Foreign Key. Foreign Key ketika harus digunakan pada sebuah tabel makan nilai yang akan digunakan untuk mengisi Foreign Key harus sesuai dengan Candidate Key dari tabel yang akan menjadi acuan untuk relasi.


Biasanya yang akan menjadi foreign key di dalam sebuah tabel adalah primary key, maka dari itu nilai dari foreign key ketika menggunakan primary key sebagai foreign key diharuskan untuk tidak bernilai null atau kosong.



General Constraints

Merupakan aturan tambahan yang dibuat khusus oleh pengguna atau admin database sesuai dengan spesifikasi yang dibutuhkan oleh developer maupun perusahaan. Tidak ada ketentuan khusus mengenai aturan ini, jadi aturan General Constraints memang custom berdasarkan keinginan developer dan klien yang akan menggunakan database


Misalnya, pembatasan jumlah pemesanan produk atau pembatasan jumlah produk maksimal yang ada di gudang dalam perusahaan, jadi admin basis data nanti bekerjasama dengan developer aplikasi untuk menyesuaikan desian database agar dapat berjalan sesuai dengan aturan perusahaan atau keinginan dari klien



8 Mysql - Tipe-tipe Tabel yang Ada di MySQL

logo mysql

Sebelumnya saya sudah membahas mengenia Data Definition Language (DDL), sekarang saya akan membahas mengenai tipe-tipe tabel yang ada di MySQL

 

Setiap tabel yang dibuat di MySQL dapat dapat didefinisikan tipenya. MySQL mendukung beberapa tipe tabel, tergantung konfigurasi saat proses instalasi MySQL. 

 

MySQL memiliki 3 tipe data utama, yaitu MyISAM, InnoDB dan HEAP. Tipe akan dibuat sesuai dengan konfigurasi jika tidak menybutkan atau mendeklarasikan tipe tabel saat penbuatan tabel. 



Tipe-tipe Tabel di MySQL



1)    MyISAM

Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan mudah digunakan. Tipe tabel ini baik digunakan Jika menyimpan data sederhana. 


Kelebihan utama MyISAM adalah kecepatan dan kestabilannya. Tipe tabel MyISAM ada tiga yaitu MyISAM static, MyISAM dymanic dan MyISAM Compressed.

a.    MyISAM static

MyISAM static digunakan ketika semua kolom dalam tabel didefinisikan dengan ukuran yang pasti, Artinya tidak ada kolom yang memiliki tipe seperti Varchar, Text dan Blob. Karena sifatnya yang pasti, maka jenis ini akan lebih cepat, aman dan stabil.


Baca Juga: Pengertian dan Tipe Data yang ada di MySQL


b.    MyISAM dymanic

MyISAM dymanic digunakan ketika terdapat kolom dengan tipe yang dinamis, seperti tipe kolom Varchar. Keuntungan utama dari jenis ini adalah ukuran yang dinamis. Jadi sifatnya lebih efektif karena ukuran data menyesuaikan isi dari masing-masing kolom.


c.    MyISAM Compressed

Kedua jenis MyISAM, static dan dynamic dapat dikompresi menjadi satu jenis yaitu MyISAM Compressed dengan perintah myisamchk. 


Tentunya hasilnya lebih kecil dari segi ukuran. Tabel yang terkompresi tidak dapat dikenakan operasi seperti Insert, Update dan Delete. 



Berikut dibawah ini adalah contoh sintak untuk menyisipkan tipe tabel MyISAM pada tabel yang akan dibuat.

CREATE TABLE pelanggan(
Id_pelanggan INT,
Nama_pelanggan VARCHAR(25),
Alamat_pelanggan VARCHAR(30))
ENGINE=MyISAM;


Kode Program Sintak tipe tabel MyISAM merupakan sintak yang digunakan untuk men-setting tipe tabel menjadi MyISAM. 

 

Sintak Tipe Tabel MyISAM
 

Gambar Sintak Tipe Tabel MyISAM merupakan tampilan dari Kode Program Sintak tipe tabel MyISAM ysng sudah dijalankan pada CMD.




2)    InnoDB

Tipe tabel InnoDB merupakan tipe tabel MySQL yang mendukung proses transaksi. Tipe ini memiliki beberapa keunggulan, antara lain:
a.    Mendukung transaksi antar tabel.
b.    Mendukung row-level-locking.
c.    Mendukung Foreign-Key Constraints.
d.    Crash recovery.

Table dengan tipe InnoDB dapat dibuat dengan menggunakan sintak CREATE nama_tabel(nama_atribut tipe_data) ENGINE = Inno DB.


CREATE TABLE pelanggan(
Id_pelanggan INT,
Nama_pelanggan VARCHAR(25),
Alamat_pelanggan VARCHAR(30))
ENGINE=InnoDB;


Kode Program Sintak Tipe Tabel InnoDB merupakan sintak yang digunakan untuk membuat sebuah tabel dengan tipe tabel InnoDB. 

 

Sintak Tipe Tabel InnoDB Setelah Dijankan
Sintak Tipe Tabel InnoDB Setelah Dijankan

Gambar Sintak Tipe Tabel InnoDB Setelah Dijankan merupakan tampilan run yang berhasil.



 

3)    HEAP

Tabel dengan tipe HEAP tidak menyimpan datanya di hardisk, tetapi menyimpan di RAM (memori). Tipe tabel ini biasanya digunakan sebagai tabel sementara (temporary). Tabel secara otomatis akan dihapus (hilang) dari MySQL saat koneksi ke server diputus atau server MySQL dimatikan.

CREATE TABLE pelanggan(
Id_pelanggan INT,
Nama_pelanggan VARCHAR(25),
Alamat_pelanggan VARCHAR(30))
ENGINE=HEAP;


Kode Program 2.3 Sintak Tipe Tabel HEAP adalah sintak yang dapat digunakan untuk mengganti tipe tabel menjadi HEAP. Setelah sintak tersebut dijalankan pada MySQL makan tampilannya akan seperti gambar dibawah ini.

Sintak Tipe Tabel HEAP Setelah Dijalankan
Sintak Tipe Tabel HEAP Setelah Dijalankan

Gambar Sintak Tipe Tabel HEAP Setelah Dijalankan merupakan tampilan darin sintak yang digunakan untuk men-setting engine tabel menjadi HEAP.


Baca Juga: Jenis - jenis Key atau Kunci dalam Relational Database 

 

 

4)    BDB

Tipe tabel ini mirip tipe tabel InnoDB, namun penggunaannya belum maksimal, sehingga jarang digunakan.


 

 

5)    Archieve

Tipe tabel ini tersedia sejak MySQL versi 4.1. Tipe tabel ini digunakan untuk menyimpan tabel yang terkompresi, dimana biasanya digunakan dalam proses backup.

 

 

 

6)    CSV

Tipe tabel ini digunakan untuk menyimpan data dalam bentuk file text yang dibatasi dengan koma (delimiter). Tipe ini tersedia sejak MySQL versi 4.1.



7 MySQL - Data Definition Language (DDL) | Contoh dan Gambar

 logo mysql


Setelah sebelumnya kita membahas mengenai Jenis Relasi dalam Relational Database, sekarang saya akan mengenai Data Definition Language (DDL)

 

 

Data Definition Language (DDL)

Data Definition Language (DDL) merupakan kumpulan perintah SQL yang digunakan untuk membuat, mengubah dan menghapus struktur dan definisi metadata dari objek-objek database. berikut ini adalah fungsi – fungsi yang ada dalam DDL.


Baca Juga: Jenis-jenis Key dalam Relational Database


Sintak DDL

1)    Create

Create adalah perintah dalam DDL yang digunakan untuk membuat objek baru seperti database, tabel, penambahan atribut, dan peng-edit-an tabel.

a.    Create Database

Perintah Create Database digunakan untuk membuat database baru di MySQL.


CREATE DATABASE coba;


Kode Program Create Database merupakan sintak SQL yang akan digunakan untuk membuat database yang diberi nama coba. 


Gambar Create Database
Create Database

Gambar Create Database adalah hasil dari sintak create database yang sudah diimplementasikan dalam query SQL.

 

 

b.    Create Table

Perintah create table digunakan untuk membuat tabel baru pada database yang telah dibuat di MySQL.

CREATE TABLE pelanggan(
Id_pelanggan INT,
Nama_pelanggan VARCHAR(25),
Alamat_pelanggan VARCHAR(30));


Kode Program Create Table merupakan sintak yang akan digunakan untuk membuat tabel baru yang diberi nama pelanggan. 

 

Create Table
Create Table

Gambar Create Table adalah tampilan setelah sintak dijalankan pada query MySQL, sehingga terbentuk sebuah tabel dengan nama pelanggan.



c.    Create Index

Create Index adalah perintah query pada SQL yang digunakan untuk membuat index baru pada sebuah tabel.


CREATE UNIQUE INDEX id ON pelanggan(id_pelanggan);


Kode Program Create Index merupakan sintak yang akan digunakan untuk membuat index unique dengan nama index id pada kolom id_pelanggan di tabel pelanggan 

 

Create Idex
Create Idex

Gambar Create Idex merupakan tampilan setelah sintak dijalankan pada query MySQL, sehingga terbentuk sebuah index baru dengan nama id.


 

 

2)    Alter

Alter merupakan sebuah perintah dalam query database yang digunakan untuk merubah atribut pada suatu tabel.

a.    Alter Add

Perintah Alter Add digunakan untuk menambahkan kolom beserta atributnya pada sebuah tabel yang sudah dibuat sebelumnya.

ALTER TABLE pelanggan ADD (no_telp CHAR(13));


Kode Program Alter Add merupakan sintak yang digunakan untuk membuat sebuah kolom baru dengan nama no_telp, mempunyai tipe data char dan panjang data 13. 

 

Alter Add
Alter Add

Gambar Alter Add merupakan tampilan setelah sintak dijalankan pada MySQL, sehingga terbentuk sebuah kolom baru dengan nama no_telp.

 

 

b.    Alter Modify

Perintah Alter Modify digunakan untuk me-modif atau mengganti sebuah atribut kolom pada tabel.

ALTER TABLE pelanggan  
MODIFY nama_pelanggan VARCHAR(30);


Kode Program Alter Modify merupakan sintak yang digunakan untuk mengubah panjang data pada kolom nama_pelanggan dari sebelumnya 25 menjadi 30. 

 

Alter Modify
Alter Modify

Gambar Alter Modify merupakan tampilan setelah sintak dijalankan pada MySQL, sehingga panjang kolom nama_pelanggan dari sebelumnya 25 sudah berubah menjadi 30.
 

 

c.    Alter Rename

Alter Rename perintal pada SQL yang digunakan untuk me-rename atau mengubah nama pada sebuah tabel


ALTER TABLE pelanggan RENAME pembeli;


Kode Program Alter Rename merupakan sintak yang digunakan untuk mengubah nama tabel yang sebelumnya pelanggan menjadi pembeli. 

 

Alter Rename
Alter Rename
 

Gambar  Alter Rename merupakan tampilan setelah sintak dijalankan pada MySQL, dimana nama tabel pelanggan telah berubah menjadi pembeli.
 

 

d.    Ater Drop

Perintah  Alter Drop digunakan untuk menghapus data yang sudah ada sebelumnya dalam sebuah tabel.

ALTER TABLE pelanggan DROP no_telp;


Kode Program  Alter Drop merupakan sintak yang digunakan untuk menghapus kolom no_telepon pada tabel pelanggan. 

 

Alter Drop
Alter Drop
 

Gambar  Alter Drop merupakan tampilan setelah sintak dijalankan pada MySQL, dalam gambar tersebut tidak lagi terdapat atribut no_telp.




3)    DROP

Perintah Drop digunakan untuk menghapus data-data yang sebelumnya sudah tersimpan dalam database.

a.    Drop Index

Perintah Drop Index digunakan untuk menghapus index yang sudah dibuat pada sebuah tabel dalam database

DROP INDEX id ON pelanggan;


Kode Program Drop Index merupakan sintak yang digunakan untuk menghapus index pada tabel pelanggan.

 

Drop Index
Drop Index

Gambar Drop Index merupakan tampilan setelah sintak dijalankan pada MySQL, dimana index unique dengan nama id sudah tidak terdapat pada tabel pelanggan.

Baca Juga: Proses Normalisasi Database



b.    Drop Table

Perintah Drop Table digunakan untuk menghapus tabel dalam database yang sudah dibuat sebelumnnya.

DROP TABLE pelanggan;


Kode Program Drop Table merupakan sintak yang digunakan untuk menghapus tabel pelanggan dari database coba.

 

Drop Table
Drop Table


Gambar Drop Table merupakan tampilan setelah sintak dijalankan pada MySQL, dimana saat akan ditampilan tabel dengan nama pelanggan sudah tidak ada.

 

c.    Drop Database

Perintah Drop Database digunakan untuk menghapus database yang sudah dibuat sebelumnya dari MySQL.

DROP DATABASE coba;


Kode Program Drop Database merupakan sintak yang digunakan untuk menghapus database dari MySQL.

 

Drop Database
Drop Database

Gambar Drop Database merupakan tampilan setelah sintak dijalankan pada MySQL. Pada tampilan tersebut database coba telah tidak ada.

6 MySQL - Jenis Relasi dalam Relational Database

logo mysql


Jenis Relasi dalam Relational Database


Relasi dalam basis data merupakan keterhubungan antar tabel satu dengan tabel yang lainnya dalam sebuah basisdata. 

Tujuan dari relasi adalah menghubungkan database yang memiliki ikatan, sehingga ketika terjadi proses transaksi (Insert, Update, Delete) dalam database data dapat saling tersinkronisasi antara satu dengan yang lainnya. Terdapat tiga jenis relasi yang terdapat pada basisdata antara lain sebagai berikut.



1) One to One (1 to 1) 

Artinya Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris atau lebih data pada tabel ke dua. 

Contohnya  relasi antara tabel presiden dan tabel negara. Satu presiden hanya bisa memimpin satu Negara saja, jadi setiap presiden hanya akan memiliki satu hubungan dengant tabel, begitu juga sebaliknya.

1 to 1
Gambar 1 One to One


Gambar 1 One to One merupakan sebuah perumpamaan relasi yang terjadi pada tabel yang memiliki hubungan satu ke satu. 



2) One to Many (1 to N)

Setiap baris data dari tabel pertama dapat dihubungkan ke satu baris atau lebih data pada tabel ke dua. Contohnya relasi presiden dengan menteri. 

Jadi satu presiden bisa memiliki banyak menteri  namun satu orang menteri tidak bisa memiliki banyak presiden.

One to Many
Gambar 2 One to Many


Gambar 2 One to Many merupakan sebuah perumpamaan relasi yang terjadi pada tabel yang memiliki hubungan satu ke banyak. 


3) Many to Many (N to N)

Satu baris atau lebih data pada tabel pertama bisa dihubugkan ke satu atau lebih baris data pada tabel ke dua: Artinya ada banyak baris di tabel satu dan tabel dua yang saling berhubungan satu sama lain.

Contohnya relasi antar tabel mahasiswa dan tabel mata kuliah. Satu baris mahasiswa bisa berhubungan dengan banyak baris mata kuliah begitu juga sebaliknya.

Gambar 3 Many to Many
Gambar 3 Many to Many 


Gambar 3 Many to Many merupakan sebuah perumpamaan relasi yang terjadi pada tabel yang memiliki hubungan banyak ke banyak. 

Tabel yang memiliki rlasi ini tidaklah disarankan karena dapat menyebabkan penggandaan data.



5 MySQL - Jenis - jenis Key Atau Kunci dalam Relational Database

Logo Mysql


Key atau kunci adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris pada data dalam suatu tabel secara unik, artinya jika suatu atribut dijadikan sebuah key maka tidak boleh ada baris data yang mempunyai nilai yang saman untuk atribut tersebut

Fungsi key dapat dikatakan sebagai index atau kunci utama ketika kita akan mencari data dalam sebuah database. key yang disebutkan diatas memilki beberapa bagian yaitu:


Key Pada Relational Database


1) Super Key

Satu atau lebih atribut yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Bisa jadi ada lebih dari satu kumpulan atribut yang yang bersifat super key dalam sebuah tabel. Contoh super key misalnya: Nim, Nama, alamat, Tgl_lahir.

2) Candidate Key

Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris dalam sebuah tabel secara unik. Sebuah candidate key tidak boleh berisi atribut atau kumpulan atribut yang telah menjadi superkey yang lain, contoh: nim, nama(jika tidak ada nilai yang berulang didalamnya).

3) Primary Key

Primary Key adalah atribut merupakan candidate key yang telah dipilih untuk mengidentifikasi setiap record secara unik. 

Primary Key harus merupakan atribut yang benar-benar unik dan tidak boleh ada nilai NULL. Primary Key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel. Contoh: NIM.

4) Alternate Key

Alternate Key adalah primary key yang tidak terpilih. Misal : dalam suatu entitas terdapat dua atribut yang bisa dijadikan sebagai primary key. 

Sementara yang boleh dijadikan primary hanya satu, maka kita harus memilih salah satu. Atribut yang dipilih, disebut primary key. sedangkan atribut yang tidak dipilih disebut dengan alternate key. 

Contohnya misalkan ada no_ktp dan NIM dalam sebuah tabel, maka kedia atribut tersebut dapat dijadikan sebagai primary key, namun hanya ada satu primary key dalam sebuah tabel jadi harus dipilih salah satu saja.

5) Foreign Key

Jika sebuah primary key terhubungan ke tebel lain, maka keberadaan primary key pada tersbut di sebut sebagai foreign key. 

Foreign key adalah atribut dalam satu relasi yang digunakan untuk menunjuk ke suatu baris pada relasi yang lain, jadi foreign key ini digunakan untuk membuat sebuah relasi yang trerjadi antara tabel A dengan tabel B, dimana ketika tabel A memebuat sebuah relasi dengan tabel B maka di tabel B primary key tabel A akan menjadi foreign key di tabel B.

6) Composite Key

Composite Key adalah key yang terdiri dari dua atau lebih atribut yang secara unik mengidentifikasi suatu entitas. 

Setiap atribut yang membentuk key senyawa adalah key sederhana. Composite key terjadi karena dalam sebuah tabel tidak ditemukannya sebuah primary key, jadi agar tidak melakukan pembuatan primary key baru maka dibuatlah sebuah composite key yaitu biasanya merupakan gabungan dari dua buah foreign key,  sehingga tidak ada data yang sama yang akan dimunculkan.




4 MySQL - Normalisasi Basisdata/Database dan Contohnya

logo mysql


Normalisasi memiliki 7 tahapan yang dapat dilakukan untuk membuat sebuah database menjadi bentuk normal, umumnya normalisasi dilakukan sampai tahap normal ketiga saja yang sudah dianggap baik.

Ketika membuat sebuah basisdata, tidak semua data yang dirancang akan langsung berada pada tempat yang tepat. 

Karena hal itu diperlukan untuk melakukan normalisasi. Normalisasi merupakan langkah yang dilakukan dalam perancangan database untuk membentuk entitas yang sederhana, mengihalangkan atau mencegah terjadinya pengulangan data (redudansi), meningkatkan fleksibelitas dan efisiensi serta membuat database dapat digunakan dalam rentang waktu yang panjeng (mudah beradaptasi)

Database yang belum di normalisasi dapat menyebabkan terjadinya anomali baik itu dalam proses Insert, Update maupun Delete



Anomali Normalisasi


Insert Anomali: Anomali yang terjadi ketika memasukan data kedalam sebuah tabel, hal biasa yang ditemukan adalah field yang kosong atau tidak terisi karena tidak ada data

Delete Anomali: Anomali yang terjadi ketika menghapus data didalam sebuah tabel, hal ini bisa terjadi karena field yang memiliki ketergantungan secara penuh dengan sebuah field yang ada di tabel lain, maka jika kita menghapus sebuah data di tabel maka data di tabel lain akan ikut terhapus

Update Anomali: Anomali yang terjadi ketika mengubah data yang sudah ada, misalnya tidak ada primary key dan foreign key di setiap tabel, artinya ketika kita mengupdate data di sebuah tabel data yang terkait di tabel lain harus dirubah secara manual karena tidak adanya foreign key dan primary key



Tahap Normalisasi


Dalam melakukan normalisasi, kita akan melalui 7 tahapan, dimana pada kejadian umumnya normalisasi dilakukan sampai dengan tahap normal 3, tetapi masih bisa dilanjutkan ketika ada field atau tabel yang masih belum normal

1) Bentuk tidak normal

Bentuk tidak normal merupakan kumpulan data yang didapatkan dari sumber data, tidak ada format tertentu untuk melakukan penulisan data yang didapat, data dapat saja data tidak lengkap atau terduplikasi. 

Data yang dikumpulkan sesuai dengan saat data tersebut diinput.  Penulisan data pada sumber dalam bentuk tidak normal adalah sebagai berikut:

Bentuk Tidak Normal
Gambar 1 Bentuk Tidak Normal


Dapat diketahui pada Gambar 1 semua data dimasukan sesuai dengan apa adanya, tidak ada ketentuan yang mengikat untuk menuliskan normal pertama ini.


2) Normal Pertama (1NF)

Pembentukan normal pertama menggunakan beberapa syaratar yang harus dipenuhi. Syarat normal pertama (1-NF) adalah sebagai berikut:
a. setiap data dibentuk dalam flat file, data dibentuk dalam satu record demi satu record nilai dari field berupa “atomic value”.
b. tidak ada set atribut yang berulang atau bernilai ganda.
c. telah ditentukannya primary key untuk tabel / relasi tersebut.
d. tiap atribut hanya memiliki satu pengertian.

normal pertama
Gambar 2 Normal Pertama


Pada Gambar 2 semua data dimasukan kedalam tabel agar memenuhi semua kolom tabel yang ada.


3) Normal Kedua (2NF)

Bentuk normal kedua didasari atas konsep full functional dependency (ketergantungan fungsional sepenuhnya) yang dapat didefinisikan sebagai berikut. 

Jika A adalah atribut-atribut dari suatu relasi, B dikatakan full functional dependency (memiliki ketergantungan fungsional terhadap A, tetapi tidak secara tepat memiliki ketergantungan fungsional dari subset (himpunan bagian) dari A. Syarat normal kedua (2-NF) sebagai berikut:
a. Bentuk data telah memenuhi kriteria bentuk normal kesatu.
b. Atribute bukan kunci (non-key) haruslah memiliki ketergantungan fungsional sepenuhnya (fully functional dependency) pada kunci utama / primary key.

Gambar 3 Tabel tb_suplier
Gambar 3 Tabel tb_suplier


Gambar 3 Tabel tb_suplier merupakan tampilan dari tabel tb_supplier  yang berisikan data G01 untuk kode supplier dan Gobel nustra untuk nama suplier.

Gambar 4 tb_barang
Gambar 4 tb_barang


Gambar 4 merupakan tampilan dari tabel tb_barang  yang berisikan tiga kolom yaitu kode barang, nama barang dan harga satuan.

Gambar 5 tb_faktur
Gambar 5 tb_faktur 


Gambar 5 tb_faktur merupakan tampilan dari tabel faktur yang berisikan tujuh kolom yaitu No_faktur, kode_barang, kode_suplier, tanggal faktur, jatuh tempo, qty dan total


4) Normal Ketiga (3NF)

Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada relasi 1-NF, namun relasi tersebut masih mungkin mengalami kendala bila terjadi anomaly peremajaan (update) terhadap relasi tersebut. Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut:
a. Bentuk data telah memenuhi kriteria bentuk normal kedua.
b. Atribute bukan kunci (non-key) harus tidak memiliki ketergantungan transitif, dengan kata lain suatu atribut bukan kunci (non_key) tidak boleh memiliki ketergantungan fungsional (functional dependency) terhadap atribut bukan kunci lainnya, seluruh atribut bukan kunci pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key di relasi itu saja.
c. Seluruh atribut non-primary key pada relasi Pelanggan dan Biaya di atas terlihat memiliki ketergantungan fungsional (functional dependency) terhadap primary key dari masing-masing tabel / relasi. Relasi/tabel Pelanggan dan Biaya di atas tidak memiliki ketergantungan transitif (transitive dependency), sehingga tabel tersebut telah memenuhi.

Gambar 6 tb_suplier
Gambar 6 tb_suplier 


Gambar 6 tb_suplier merupakan tampilan dari tabel tb_suplier  yang berisikan data G01 untuk kode_supplier dan Gobel_nustra untuk nama_suplier. Sama seperti pada normal kedua.

Gambar 7 tb_transaksi
Gambar 7 tb_transaksi


Gambar 7 tb_transaksi merupakan tampilan dari tabel tb_transaksi yang berisikan kolom kode barang, nomor faktur, qty dan harga.

Gambar 2.8 tb_faktur
Gambar 2.8 tb_faktur


Gambar 2.8 tb_faktur merupakan tampilan dari tabel tb_faktur  yang berisikan kolom no faktur, kode suplier, tangggal faktur, jatuh tempo, total.
 
tb_barang
Gambar 2.9 tb_barang


Gambar 2.9 tb_barang merupakan tampilan dari tabel tb_barang  yang berisikan data kolom kode, nama_barang, Harga_satuan.


5) Boyce-Code Normal Form (BCNF)

Suatu relasi disebut memenuhi bentuk normal Boyce-Codd jika dan hanya jika semua penentu (determinan) adalah candidate key (atribut yang bersifat unik). 

BCNF merupakan bentuk normal sebagian perbaikan terhadap 3NF. Suatu relasi yang memenuhi BCNF selalu memenuhi 3NF, tetapi 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 dinormalisasi lebih lanjut. BCNF memiliki ketentuan yaitu:
a. Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap Functional Dependency terhadap setiap atribut atau gabungan atribut dalam bentuk : X –> Y maka X adalah Super Key.
b. Tabel tersebut harus di dekomposisi berdasarkan Functional Dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.
c. Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF. Perbedaannya, untuk Functional Dependency X –> A, BCNF tidak membolehkan A sebagai bagian dari primary key.
d. Properti penting BCNF adalah relasi tidak memiliki informasi yang redundan.

BCNF dengan normal 3NF memiliki perbedaan. Adapun perbedaan dari normal BCNF dengan normal 3NF adalah sebagai berikut :
a. Pada BCNF suatu atribut yang bergantung secara fungsional terhadap primary key , mungkin saja merupakan kunci primer bagi atribut yang lain.
b. Pada 3NF hal ini bisa saja terjadi dan tidak menjadi masalah.


6) Normal Keempat (4NF)

Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute. 

Setiap multivalued attribute (MVD) juga harus merupakan Functional Dependency.


7) Normal Kelima (5NF)

Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition menjadi tabel-tabel yang lebih kecil. 

Jika 4 bentuk normal sebelumnya dibentuk berdasarkan Functional Dependency, 5NF dibentuk berdasarkan konsep Join Dependence. 

Yakni apabila sebuah tabel telah di dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi untuk membentuk tabel semula.





Ladangtekno

3 MySQL - Langkah yang Harus Dilakukan dalam Membuat Sebuah Program Basisdata/Database

logo mysql


Pembuatan sebuah basis data memerlukan proses yang cukup panjang karena menjadi salah satu inti dari keseluruhan program yang akan kita buat.

Sebelum kalian merancang sebuah basisdata kalian bisa membaca terlebih dahulu mengetahui apa itu database khusunya disini MySQL dan tipe-tipe data yang ada didalamnya serta kalian juga harus memahami mengapa kita harus memilih tipe data yang tepat dalam pembuatan sebuah basisdata

Pembuatan basisdata merupakan salah satu tahap awal yang dilakukan dalam merancang sebuah sistem. Disini akan ditentukan jenis basisdata yang digunakan, jenis data yang digunakan dan juka akan sangat mempengaruhi performa sistem nantinya.

Disini saya menjelaskan beberapa tahap yang harus dilakukan ketika kalian ingin membuat sebauh basisdata agar basisdata yang kalian buat dapat efisien di sistem kalian nantinya.


oke langsung saja ya..., Tahapan untuk membuat sebuah basisdata


1) Pengumpulan Data

Pada tahap ini kita melakukan indentifikasi dan analisa kebutuhan data yang nanti akan digunakan dalam pembuatan basisdata. 

Untuk mengetahui seberapa besar kebutuhan data yang kita butuhkan, maka kita harus tau bagian -bagian dari sistem informasi yang akan terlibat atau menggunakan database kita, seperti pengguna dan aplikasi yang digunakan dan juga perlu diperhatikan keguaan atau fungsi apa yang akan dilakukan oleh user dan aplikasi yang digunakan.


2) Perancangan Database Secara Konseptual

Pada tahapan ini akan dihasilkan skema dari database yang kita buat. Tahapan perancangan database secara konseptual mempunyai dua aktifitas secara parallel.

a. Perancangan skema konseptual

Perancangan skema konseptual yaitu menguji kebutuhan - kebutuhan dari suatu database yang merupakan hasil dari tahap pertama dan akan menghasilkan sebuah skema konseptual database. 

b. Perancangan transaksi

Perancangan transaksi yaitu menguji aplikasi-aplikasi database dimana kebutuhannya telah diteliti pada tahap pertama, dan menghasilkan rincian-rincian transaksi. Transaksi-transaksi ini akan digunakan untuk memanipulasi database suatu saat dimana database itu diaplikasikan.


3) Pemilihan DBMS

Pemilihian database dipengaruhi oleh faktor teknik, organisasi dan ekonomi. Faktor -faktor ini akan mempengaruhi satu sama lain,diantaranya yaitu: 
a. Struktur data
b. Subjek yang akan menggunakan sistem yang dibuat
c. Layanan penjual: yaitu untuk memecahkan beberapa masalah sistem.



4) Perancangan Datbase Secara Logika (Data Model Mapping)

Pada tahap ini kita akan membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. 

Pada tahap ini, skema konseptual ditransformasikan dari model tingkat tinggi yang digunakan pada tahap kedua ke dalam model data dari model data dari DBMS yang dipilih pada tahap ketiga. Pemetaan tersebut dapat diproses dalam dua tingkat.

a. Pemetaan Sistem Independent

Pemetaan sistem independent adalah pemetaan ke dalam DBMS dengan tidak mempertimbangkan karakteristik atau hal – hal khusus yang berlaku pada implementasi DBMS dari implementasi model tersbut. 

b. Penyesuaian Skema ke DBMS yang Spesifik

Skema yang dihasilkan pada langkah pertama akan disesuaikan pada implementasi di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang ditentukan.

Hasil dari tahap ini memakai perintah-perintah DDL (Data Definition Language) dalam bahasa DBMS yang dipilih yang menentukan tingkat skema konseptual dan eksternal dari sistem database. 

Tetapi dalam beberapa hal, perintah-perintah DDL memasukkan parameter-parameter rancangan fisik sehingga DDL yang lengkap harus menunggu sampai tahap perancangan database secara fisik telah lengkap.

Tahap ini dapat dimulai setelah pemilihan sebuah implementasi model data sambil menunggu DBMS yang spesifik yang akan dipilih. 

Contoh: jika memutuskan untuk menggunakan beberapa relational DBMS tetapi belum memutuskan suatu relasi yang utama. Rancangan dari skema eksternal untuk aplikasi-aplikasi yang spesifik seringkali sudah selesai selama proses ini.


5) Perancangan Database Secara fisik

merupakan proses pemilihan struktur penyimpanan dan jalur akses pada file-file database untuk mencapai performa yang terbaik pada bermacam-macam aplikasi. 

Selama tahap ini, dirancang spesifikasi-spesifikasi untuk database yang disimpan yang berhubungan dengan struktur-struktur penyimpanan fisik, penempatan record dan jalur akses. 

Berhubungan dengan internal schema (pada istilah 3 level arsitektur DBMS).Beberapa petunjuk dalam pemilihan perancangan database secara fisik.

a. Response time

Waktu yang telah berlalu dari suatu transaksi database yang diajukan untuk menjalankan suatu tanggapan. 

Pengaruh utama pada response time adalah di bawah pengawasan DBMS yaitu : waktu akses database untuk data item yang ditunjuk oleh suatu transaksi. 

Response time juga dipengaruhi oleh beberapa faktor yang tidak berada di bawah pengawasan DBMS, seperti penjadwalan, sistem operasi atau penundaan komunikasi.

b. Space utility

Jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur-struktur jalur akses.

c. Transaction throughput

Rata-rata jumlah transaksi yang dapat diproses permenit oleh sistem database, dan merupakan parameter kritis dari sistem transaksi (misal : digunakan pada pemesanan tempat di pesawat, bank, dll). Hasil dari fase ini adalah penentual awal dari struktur penyimpanan dan jalur akses untuk file-file database.

6) Implementasi Sistem Database

Setelah perancangan secara logika dan secara fisik selesai, selanjutnya kita dapat menjalankan sistem database. 

Perintah-perintah dalam DDL dan SDL (Storage Definition Language) dari DBMS yang dipilih, dihimpun dan digunakan untuk membuat skema database dan file-file database. 

Sekarang database tersebut dimuat  dengan datanya. Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin diperlukan untuk format ulang datanya yang kemudian dimasukkan ke database yang baru. 

Transaksi-transaksi database sekarang harus dilaksanakan oleh para programmmer aplikasi. Spesifikasi secara konseptual diuji dan dihubungkan dengan kode program dengan perintah - perintah dari embedded DML yang telah ditulis dan diuji.





Ladangtekno