Modul 1 Normalisasi

by 16.45 0 komentar
Tujuan
  1. Mampu menentukan key dengan tepat.
  2. Mampu memasangkan pasangan PK dan FK sesuai cardinality.
  3. Mampu melakukan normalisasi terhadap suatu sistem dengan benar.
Tugas Pendahuluan
a.       Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya dilakukan dalam pembuatan suatu program basis data.
b.      Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya dilakukan dalam proses normalisasi, berikan contoh untuk menggambarkan proses yang terjadi disetiap tahapan normalisasi.
c.       Sebutkan macam-macam tipe data yang ada dalam MySQL serta kebutuhan memory dan penggunaannya dengan jelas.
d.      Sebutkan kegunaan key dalam suatu tabel. Lalu sebutkan dan jelaskan macam - macam key yang ada dalam konsep basis data.
e.       Sebutkan dan jelaskan macam-macam relationship (keterhubungan) yang ada dalam konsep basisdata.

Jawaban
1.      Tahap 1 – Pengumpulan data dan analisa
Merupakan suatu tahap dimana kita melakukan proses indentifikasi dan analisa kebutuhan-kebutuhan data dan ini disebut pengumpulan data dan analisa. Untuk menentukan kebutuhan-kebutuhan suatu sistem database, kita harus mengenal terlebih dahulu bagian-bagian lain dari sistem informasi yang akan berinteraksi dengan sistem database, termasuk para user yang ada dan para useryang baru beserta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para user dan aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalisa.
Berikut ini adalah aktifitas-aktifitas pengumpulan data dan analisa:
·         Menentukan kelompok pemakai dan bidang-bidang aplikasinya
·         Peninjauan dokumentasi yang ada
·         Analisa lingkungan operasi dan pemrosesan data
·         Daftar pertanyaan dan wawancara
Tahap 2 – Perancangan database secara konseptual
Pada tahap ini akan dihasilkan conceptual schema untuk database yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan sebuah high-level data modelseperti ER/EER modelselama tahap ini. Dalam conceptual schema, kita harus merinci aplikasi-aplikasi databaseyang diketahui dan transaksi-transaksi yang mungkin.Tahap perancangan databasesecara konseptual mempunyai 2 aktifitas pararel:
1.      Perancangan skema konseptual
Menguji kebutuhan-kebutuhan data dari suatu database yang merupakan hasil dari tahap 1 dan menghasilkan sebuah conceptual database schema pada DBMS-independent model data tingkat tinggi seperti EER (Enhanced Entity Relationship) model.Untuk menghasilkan skema tersebut dapat dihasilkan dengan penggabungan bermacam-macam kebutuhan user dan secara langsung membuat skema database atau dengan merancang skema-skema yang terpisah dari kebutuhan tiap-tiap user dan kemudian menggabungkan skema-skema tersebut. Model data yang digunakan pada perancangan skema konseptual adalah DBMS-independent dan langkah selanjutnya adalah memilih DBMS untuk melakukan rancangan tersebut.
2.      Perancangan transaksi
Menguji aplikasi-aplikasi databasedimana kebutuhan-kebutuhannya telah dianalisa pada fase 1, dan menghasilkan perincian transaksi-transaksi ini.Kegunaan tahap ini yang diproses secara paralel bersama tahapp perancangan skema konseptual adalah untuk merancang karakteristik dari transaksi-transaksi database yang telah diketahui pada suatu DBMS-independent. Transaksi-transaksi ini akan digunakan untuk memproses dan memanipulasi database suatu saat dimana database tersebut dilaksanakan.
Tahap 3 – Pemilihan DBMS
Pemilihan database ditentukan oleh beberapa faktor diantaranya faktor teknik, ekonomi, dan politik organisasi.Contoh faktor teknik:
Keberadaan DBMS dalam menjalankan tugasnya seperti jenis-jenis DBMS (relational, network, hierarchical, dan lain-lain), struktur penyimpanan, dan jalur akses yang mendukung DBMS, pemakai, dan lain-lain.Faktor-faktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam pemilihan DBMS :
1.      Struktur data
Jika data yang disimpan dalam database mengikuti struktur hirarki, maka suatu jenis hirarki dari DBMS harus dipikirkan.
2.      Personal yang telah terbiasa dengan suatu system
Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar.
3.      Tersedianya layanan penjual
Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk membantu memecahkan beberapa masalah sistem.
    Tahap 4 – Perancangan database secara logika (data model mapping)
Tahap selanjutnya adalah membuat sebuah skema konseptual dan skema eksternal pada model data dari DBMS yang terpilih. Tahap ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang dihasilkan pada tahap 2. Pada tahap ini, skema konseptual ditransformasikan dari model data tingkat tinggi yang digunakan pada tahap 2 ke dalam model data dari model data dari DBMS yang dipilih pada tahap 3.Pemetaan tersebut dapat diproses dalam 2 tingkat:

1.      Pemetaan system-independent
Pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan karakteristik atau hal-hal yang khusus yang berlaku pada implementasi DBMS dari model data tersebut.
2.      Penyesuain skema ke DBMS yang spesifik
Mengatur skema yang dihasilkan pada langkah 1 untuk disesuaikan pada implementasi yang khusus di masa yang akan datang dari suatu model data yang digunakan pada DBMS yang dipilih.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 10 dalam beberapa hal, perintah-perintah DDL memasukkan parameter-parameter rancangan fisik sehingga DDL yang lengkap harus menunggu sampai tahap perancangan databasesecara 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.
    Tahap 5 – Perancangan database secara fisik
Perancangan database secara fisik merupakan proses pemilihan struktur-struktur penyimpanan dan jalur-jalur akses pada file-file databaseuntuk mencapai penampilan yang terbaik pada bermacam-macam aplikasi.Selama fase 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 databasesecara fisik :
1.      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.
2.      Space utility
Jumlah ruang penyimpanan yang digunakan oleh file-file database dan struktur-struktur jalur akses.
3.      Transaction throughput
Rata-rata jumlah transaksi yang dapat diproses per menit 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.
    Tahap 6 – Implementasi Sistem database
Setelah perancangan secara logika dan secara fisik lengkap, kita dapat melaksanakan 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 (yang kosong). Sekarang databasetersebut dimuat (disatukan) dengan datanya.Jika data harus dirubah dari sistem komputer sebelumnya, perubahan-perubahan yang rutin mungkin 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. Suatu saat transaksi-transaksi tersebut telah siap dan data telah dimasukkan ke dalam database, maka tahap perancangan dan implementasi telah selesai, dan kemudian tahap operasional dari sistem database dimulai.
2.      – Un-Normal Form
Berupa relasi umum, sesuai kenyataan
Mencerminkan item data nyata
Mencerminkan bagian dari suatu sistem
Belum dapat digunakan sebagai database
Bentuk Flat Table menggambarkan jumlah  atribut
Contoh Flat Tabel :
NO
NOTA
TANGGAL
NAMA
ALAMAT
KOTA
NO. HP
SERI
NAMA BARANG
qty
HARGA
SATUAN
JUMLAH HARGA
TOTAL
030407-1
03-10-2016
Adi
Jl. Parikesit
Singaraja
085738
F-190-S
Kipas Angin
1
Rp. 150.000,-
set
Rp. 150.000,-
Rp. 241.500,-
-
-
-
-
-
-
L-177-R
Lampu
5
Rp. 12.500,-
pcs
Rp. 62.500,-
-
-
-
-
-
-
-
O-012-Y
Kabel
20
Rp. 3.650,-
m
Rp. 79.000,-
-

– Bentuk Normal Tahap Pertama (1NF)
·         Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama.
·         Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).
Contoh Flat Table :
NO.
NOTA
TANGGAL
NAMA
ALAMAT
KOTA
NO. HP
SERI
NAMA BARANG
qty
HARGA
SATUAN
JUMLAH HARGA
TOTAL
030407-1
03-10-2016
Adi
Jl. Parikesit
Singaraja
085738
F-190-S
Kipas Angin
1
Rp. 150.000,-
set
Rp. 150.000,-
Rp. 241.500,-
-
-
-
-
-
-
L-177-R
Lampu
5
Rp. 12.500,-
pcs
Rp. 62.500,-
-
-
-
-
-
-
-
O-012-Y
Kabel
20
Rp. 3.650,-
m
Rp. 79.000,-
-
Contoh Atomic Value:
NO.
NOTA
TANGGAL
NAMA
ALAMAT
KOTA
NO. HP
SERI
NAMA BARANG
qty
HARGA
SATUAN
JUMLAH HARGA
TOTAL
03.0407-1
03-10-2016
Adi
Jl. Parikesit
Singaraja
085738
F-190-S
Kipas Angin
1
Rp. 150.000,-
set
Rp. 150.000,-
Rp. 241.500,-
03.0407-1
03-10-2016
Adi
Jl. Parikesit
Singaraja
085738
L-177-R
Lampu
5
Rp. 12.500,-
pcs
Rp. 62.500,-
Rp. 241.500,-
03.0407-1
03-10-2016
Adi
Jl. Parikesit
Singaraja
085738
O-012-Y
Kabel
20
Rp. 3.650,-
m
Rp. 79.000,-
Rp. 241.500,-

Masalah yang muncul : Duplication, Inconsistency, Data Isolation, dan Un-Efficiency.
– Bentuk Normal Tahap Kedua (2NF)
·         Bentuk Normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional dependency pada primary key.
·         Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key).
·         Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
Tb_1
NO. NOTA
TANGGAL
TOTAL
03.0407-1
03-10-2016
Rp. 241.500,-

Tb_2
NAMA
ALAMAT
KOTA
NO. HP
Adi
Jl. Parikesit
Singaraja
085738

Tb_3
SERI
NAMA BARANG
Qty
HARGA
SATUAN
JUMLAH HARGA
F-190-S
Kipas Angin
1
Rp. 150.000,-
set
Rp. 150.000,-
L-177-R
Lampu
5
Rp. 12.500,-
pcs
Rp. 62.500,-
O-012-Y
Kabel
20
Rp. 3.650,-
m
Rp. 79.000,-

Dari ketiga tabel tersebut masih ada beberapa masalah yang muncul yakni masalah :
·         Lose-Less Decomposition
·         Dependency Preservation.
Coba kita lihat pada Tb_3, atribut Jumlah serta Jumlah Harga masih juga samar-samar jadi permasalahan yang muncul adalah Transitive Dependency. Maka perlu dilakukan langkah normalisasi bentuk ketiga (3NF).
– Bentuk Normal Tahap Ketiga (3NF)
·         Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya,
·         Untuk setiap Functional Dependency dengan notasi X-->A, maka :
·         X harus menjadi superkey pada tabel tersebut.
·         Atau A merupakan bagian dari primary key pada tabel tersebut.
Coba kita lihat lagi Tb_3, kita dapat memecah kembali tabel tersebut dengan membagi atribut Seri, Nama Barang, Harga, dan Satuan  menjadi satu tabel. Untuk Tb_1 dan Tb_2 sudah tidak ada masalah lagi. Jadi sampai bentuk ketiga ini kita sudah memiliki 4 tabel baru.
Dengan tambahan dari pemecahan tabel Tb_3 menjadi Tb_4 dan Tb_5. Seperti pada gambar di bawah ini :
Tb_3
SERI
NAMA BARANG
Qty
HARGA
SATUAN
JUMLAH HARGA
F-190-S
Kipas Angin
1
Rp. 150.000,-
set
Rp. 150.000,-
L-177-R
Lampu
5
Rp. 12.500,-
pcs
Rp. 62.500,-
O-012-Y
Kabel
20
Rp. 3.650,-
m
Rp. 79.000,-

Menjadi :
Tb_4
SERI
NAMA BARANG
HARGA
SATUAN
F-190-S
Kipas Angin
Rp. 150.000,-
set
L-177-R
Lampu
Rp. 12.500,-
pcs
O-012-Y
Kabel
Rp. 3.650,-
m




Tb_5
NAMA
SERI
Qty
JUMLAH HARGA
Adi
F-190-S
1
Rp. 150.000,-
Adi
L-177-R
5
Rp. 62.500,-
Adi
O-012-Y
20
Rp. 79.000,-

Pada tahap normalisasi 3, kualitas tabel sudah memiliki kualitas yang baik dan dianggap sudah memenuhi standar normalisasi tabel yang baik. Namun masih ada beberapa tahap normalisasi lagi untuk memenuhi perancangan suatu database yang lebih kompleks.
– Boyce-Code Normal Form (BCNF)
·         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.
·         Tabel tersebut harus di dekomposisi berdasarkan Functional Dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.
·         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.
– Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF
·         Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
·         Untuk setiap  multivalued attribute (MVD) juga harus merupakan Functional Dependency
– Bentuk Normal Tahap 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.
– Overnormalisasi
Analisa Overnormalisasi diperlukan jika :
·         Database ini digunakan untuk sistem multi user
·         Tabel-tabel yang sudah normal ini digabungkan dengan fungsi lain yang ada di lapangan, misalnya; untuk fungsi retur, untuk fungsi inventori, untuk fungsi sales order maupun order pembelian, untuk fungsi keamanan database, dan lain-lain.
3.      Secara umum tipe data pada MySQL dibagi menjadi 4 yaitu:
·         Numeric Values yaitu angka atau bilangan seperti 10; 123; 100.50; -10; 1.2E+17; 2.7e-11; dan sebagainya. Tipe data ini dibagi menjadi dua yaitu Bilangan Bulat (Integer) dan Bilangan Pecahan (Floating-point). Bilangan bulat adalah bilangan tanpa tanda desimal sedangkan bilangan pecahan adalah bilangan dengan tanda desimal. Kedua jenis bilangan ini dapat bernilai positif (+) dan juga negatif (-). Jika bilangan tersebut menggunakan tanda positif (+) atau (-), maka disebut SIGNED. Sebaliknya bila tanpa tanda apapun disebut UNSIGNED. Karena tanda positif (+) dapat diabaikan penulisannya maka pada bilangan yang bernilai positif disebut UNSIGNED.
·         String/Character Values adalah semua karakter (atau teks) yang penulisannya selalu diapit oleh tanda kutip baik kutip tunggal (‘) maupun kutip ganda (“). Hal ini tidak hanya berlaku pada huruf alfabet saja tetapi angka yang ditulis dengan tanda kutip pun akan menjadi karakter atau string.
·         Date and Time Values yaitu tanggal dan waktu. Untuk jenis data tanggal dan waktu format standar (default) penulisan tanggalnya adalah “tahun-bulan-tanggal”, Misalnya untuk 22 Januari 2001 dituliskan “2002-01-22”. Untuk penulisan waktu, formatnya adalah “jam-menit-detik”. Contoh, “13:55:07”. Data tanggal dan waktu bisa digabung penulisannya menjadi “2002-01-22 13:55:07”.
·         NULL. NULL sebenarnya bukan data, tapi dia mewakili sesuatu yang “tidak pasti”, “tidak diketahui” atau “belum ada nilainya”. Sebagai contoh dalam kehidupan sehari-hari Anda melakukan suatu survei berapa jumlah pengguna sistem operasi LINUX dan Windows di Indonesia. Selama survei belum tuntas maka data pastinya belum dapat diketahui. Oleh sebab itu, data tersebut bisa diwakili dengan NULL, alias belum diketahui.
Pada tipe-tipe data MySQL terdapat beberapa atribut yang memiliki arti sebagai berikut:
·         M, menunjukkan lebar karakter maksimum. Nilai M maksimum adalah 255.
·         D, menunjukkan jumlah angka di belakang koma. Nilai maksimum D adalah 30 tetapi dibatasi oleh nilai M, yaitu tidak boleh lebih besar daripada M-2.
·         Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah optional.
·         Jika atribut ZEROFILL disertakan, MySQL akan otomatis menambahkan atribut UNSIGNED.
·         UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya tanda negatif).
Berikut tipe-tipe data yang didukung oleh MySQL, antara lain:
·         Tipe data untuk bilangan
No
Tipe Data
Bentuk Dasar Penulisan
Keterangan
Ukuran
1.
TINYINT
TINYINT [(M)] [UNSIGNED] [ZEROFILL]
Digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Bilangan bulat terkecil, dengan jangkauan untuk bilangan bertanda -128 sampai dengan 127 dan untuk yang tidak bertanda 0 sampai dengan 255. Bilangan tak bertanda ditandai dengan kata UNSIGNED
1 byte
2.
SMALLINT
SMALLINT [(M)] [UNSIGNED] [ZEROFILL]
Digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan untuk bilangan bertanda -32768 sampai dengan 32767 dan untuk yang tidak bertanda (jangkauan unsigned) 0 sampai dengan 65535
2 byte
3.
MEDIUMNIT
MEDIUMINT [(M)] [UNSIGNED] [ZEROFILL]
Digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan  untuk bilangan bertanda -8388608 sampai dengan 8388607 dan untuk yang tidak bertanda (jangkauan unsigned) 0 sampai dengan 16777215
3 byte
4.
INT
INT [(M)] [UNSIGNED] [ZEROFILL]
Digunakan untuk menyimpan data bilangan bulat positif dan negatif .
Jangkauan untuk bilangan bertanda -2147483648 sampai dengan 2147483647 dan untuk yang tidak bertandan (jangkauan usigned)  0 sampai dengan 4294967295
4 byte
5.

INTEGER [(M)] [UNSIGNED] [ZEROFILL]
Sama dengan INT.

6.
BIGINT
BIGINT [(M)] [UNSIGNED] [ZEROFILL]
Digunakan untuk menyimpan data bilangan bulat positif dan negatif .
Jangkauan  untuk bilangan bertanda -9223372036854775808 sampai dengan 9223372036854775807 dan untuk yang tidak bertanda 0 sampai dengan
184467440737079551615
8 byte.
7.
FLOAT
FLOAT [(M,D)] [ZEROFILL]
Digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi tunggal.
Jangkauan: -3.402823466E+38 s/d -1.175494351E-38, 0, dan 1.175494351E-38 s/d 3.402823466E+38
4 byte
8.
DOUBLE
DOUBLE [(M,D)] [ZEROFILL]
Digunakan untuk menyimpan data bilangan pecahan positif dan negatif presisi ganda.
Tidak dapat bersifat unsigned.
Nilai yang diijinkan adalah -1.7976931348623157E+308 hingga -2.2250738585072014E-308 untuk nilai negatif, 0, dan 2.2250738585072014E-308 hingga 1.7976931348623157E+308 untuk nilai positif.
8 byte
9.

DOUBLE PRECISION [(M,D)] [ZEROFILL]
Bilangan pecahan berpresisi
ganda.
8 byte.
10.

REAL [(M,D)] [ZEROFILL]
Sinonim dari DOUBLE.
8 byte.
11.
DECIMAL
DECIMAL [(M,D)] [ZEROFILL]
Digunakan untuk menyimpan data bilangan pecahan positif dan negatif.
Misalnya DECIMAL(5,2) dapat digunakan untuk menyimpan bilangan -99,99 sampai dengan
99,99
M byte
12.

NUMERIC [(M,D)] [ZEROFILL]
Sama dengan Decimal.
M byte.
·         Tipe tanggal dan jam
No
Tipe
Data
Bentuk Dasar Penulisan
Keterangan
Ukuran
1.
DATETIME

Kombinasi tanggal dan waktu
dengan jangkauan dari ‘1000-01-01 00:00:00’ sampai dengan ‘9999-12-31 23:59:59’
8 byte.
2.
DATE

Kombinasi tanggal dan waktu
dengan jangkauan dari ‘1000-01-01’ sampai dengan ‘9999-12-31 ’
8 byte.
3.
TIMESTAMP
TIMESTAMP [(M)]
Kombinasi tanggal dan waktu
dengan jangkauan dari ‘1970-01-01’ sampai dengan ‘2037 ’
4 byte.
4.
TIME

Digunakan untukmenyimpan waktu dengan jangkauan dari
-838:59:59 sampai dengan 838:59:59
3 byte.
5.
YEAR

Digunakan untuk menyimpan data tahun dari tanggal antara 1901 sampai dengan 2155
1 byte
·         Tipe data untuk karakter dan lain-lain
No
Tipe
Data
Bentuk Dasar Penulisan
Keterangan
Ukuran
1.
CHAR
CHAR(M) [BINARY]
Data string dengan panjang yang tetap. CHAR(1) cukup ditulis dengan CHAR. 1<=M<=255, Jika ada sisa, maka sisa tersebut diisi dengan spasi (misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter, maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan dihilangkan apabila data dipanggil. Nilai dari CHAR akan disortir dan diperbandingkan secara case-insensitive menurut default character set yang tersedia, kecuali bila atribut BINARY disertakan.
M byte.
2.
VARCHAR
VARCHAR  (M)
[BINARY]
Ukuran L+1 byte dengan L<=M dan
1<=M<=255. Data string dengan panjang bervariasi tergantung datanya. Jika nilai M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.
L+1 byte
3.
TINYBLOB,
TINYTEXT

L+1 byte, dengan L<2. Tipe
TEXT atau BLOB dengan   panjang maksimum 255 karakter.
L+1 byte
4.
BLOB,
TEXT

L+2 byte, dengan L<216 . Tipe
TEXT atau BLOB dengan   panjang maksimum 65535 karakter.
L+2 byte
5.
MEDIUMBLOB, MEDIUMTEXT

L+3 byte, dengan L<224. Tipe
TEXT atau BLOB dengan   panjang maksimum 1677215 karakter.
L+3 byte
6.
LONGBLOB, LONGTEXT

L+4 byte, dengan L<232. Tipe
TEXT atau BLOB dengan   panjang maksimum 4294967295 karakter.
L+4 byte
7.
ENUM
ENUM(’nilai1’,’nilai2’,..)
Ukuran 1 atau 2 byte tergantung nilai
enumerasinya maks 65535 nilai
1 atau 2 byte
8.
SET
SET(’nilai1’,’nilai2’,..)
Ukuran 1,2,3,4 atau 8 byte tergantung jumlah anggota himpunan maks 64 anggota.
1,2,3,4 atau 8 byte

4.      Key adalah satu gabungan dari beberapa atribut yang dapat membedakan semua basis data (row) dalam tabel secara unik. Key di dalam database berfungsi sebagai  suatu cara untuk mengidentifikasi dan menghubungkan satu tabel data dengan tabel yang lain.
– Primary Key
Kunci primer adalah suatu atribut atau satu set minimal atribut yang tidak hanya mendefinisikan secara unik suatu kejadian spesifik tetapi juga dapat mewakili setiap kejadian dari suatu kejadian.
Nilai field yang menjadi primary key harus :
·         Unik atau tidak boleh ganda
·         Tidak boleh Null (kosong, tidak diketahui, tidak dapat ditentukan)
·         Key tersebut lebih natural untuk dijadikan acuan
database tanpa data apapun yang asing. Setiap tabel dapat memiliki satu atau lebih candidate key.
Key boleh terdiri lebih dari satu field Key yang terdiri lebih dari satu kolom seperti ini disebut Composite Key
– Foreign Key
Foreign Key adalah satu set atribut atau set atribut sebagai key penghubung kedua tabel dan melengkapi satu relationship (hubungan) terhadap primary key yang menunjukan keinduknya.
Jika sebuah primary key terhubungan ke table/entity lain, maka keberadaan primary key pada entity tersebut di sebut sebagai foreign key.
– Candidat Key
Candidat Key adalah suatu atribut atau satu set minimal atribut yang hanya mengidentifikasikan secara unik untuk suatu kejadian spesifik dari entitas.
Candidate key ini harus memenuhi syarat sebagai berikut :
·         Unique Identifier, untuk setiap row/tuple candidate key harus secara unik dapat menjadi identifier. Artinya, setiap non candidate key atribut secara fungsional bergantung pada candidate tersebut.
·         Non Redudancy, tidak ada duplikasi candidate key untuk menjadi unique identifier, dimana tidak dapat dilakukan penghapusan pada candidate key dimana tidak merusak sifat unique identifier.
– Composite Key
Dalam desain database, composite key adalah kunci yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian entitas. Setiap atribut yang membentuk kunci senyawa adalah kunci sederhana dalam haknya sendiri. composite setidaknya satu atribut yang membentuk kunci komposit bukanlah kunci sederhana.
– Alternative Key
Alternative Key adalah candidate key yang tidak dipilih sebagai primary key.
– Sekunder Key
Sekunder key adalah sebuah atribut atau kombinasi yang digunakan hanya untuk tujuan pengambilan data.
5.      Relasi adalah hubungan antara tabel yang merepresentasikan hubungan antar obyek di dunia nyata. Macam-Macam Relasi antar tabel :
·         One-to-many. Misalkan terdapat relasi antara tabel ibu dan tabel anak dengan nama relasi "mempunyai" dan relasinya one-to-many. Artinya satu record pada tabel ibu boleh berelasi (mempunyai) dengan banyak record pada tabel anak. Namun satu record pada tabel anak hanya boleh berelasi dengan satu record saja pada tabel ibu.
·         One-to-one. Jika dua tabel berelasi one-to-one artinya setiap record di entitas pertama hanya akan berhubungan dengan satu record di entitas kedua begitu pula sebaliknya. Conrohnya relasi antara tabel pegawai dan alamat pegawai. Satu record pegawai hanya berhubungan dengan satu record alamat pegawai beitu pula sebaliknya. Entitas 3 merupakan atribut yang unik di entitas 4.
·         Many-to-many. Jika tabel satu berelasi dengan tabel dua dengan relasi any-to-many artinya ada banyak record di entitas satu dan entitas dua yang saling berhubungan satu sama lain. Contohnya relasi many-to-many antara tabel transaksi dan barang. Satu record transaksi bisa berhubungan dengan banyak record barang, begitu pula sebaliknya
DOWNLOAD > download

Mank Adi

Developer

Mahasiswa Teknologi Informasi, Fakultas Teknik, Universitas Udayana yang simpel dan seorang gamers