Anda di halaman 1dari 18

Nama : I Nyoman Adi Triginarsa

NIM : 1504505026

Kelompok : 22

MODUL I
NORMALISASI

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:
a. Menentukan kelompok pemakai dan bidang-bidang aplikasinya
b. Peninjauan dokumentasi yang ada
c. Analisa lingkungan operasi dan pemrosesan data
d. 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 :

Bentuk Normal Tahap Pertama (1NF)


a. Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki
atribut bernilai banyak (multivalued attribute), atribut composite
atau kombinasinya dalam domain data yang sama.
b. Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak
dapat dibagi-bagi lagi).
Contoh Flat Table :

Contoh Atomic Value:

Masalah yang muncul : Duplication, Inconsistency, Data Isolation, dan


Un-Efficiency.
Bentuk Normal Tahap Kedua (2NF)
a. 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.
b. Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang
ketergantungannya (Functional Dependency) hanya bersifat parsial
saja (hanya tergantung pada sebagian dari primary key).
c. 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
NAMA JUMLAH
SERI Qty HARGA SATUAN
BARANG 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 :
a. Lose-Less Decomposition
b. 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)
a. 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,
b. Untuk setiap Functional Dependency dengan notasi X-->A, maka :
c. X harus menjadi superkey pada tabel tersebut.
d. 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
NAMA JUMLAH
SERI Qty HARGA SATUAN
BARANG 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)
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.
Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF
a. Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah
memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki
lebih dari sebuah multivalued attribute.
b. Untuk setiap multivalued attribute (MVD) juga harus merupakan
Functional Dependency
Bentuk Normal Tahap Kelima (5NF)
a. Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss
decomposition menjadi tabel-tabel yang lebih kecil.
b. 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 :
a. Database ini digunakan untuk sistem multi user
b. 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:
a. 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.
b. 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.
c. 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.
d. 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:
a. M, menunjukkan lebar karakter maksimum. Nilai M maksimum
adalah 255.
b. 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.
c. Atribut yang diberi tanda [ dan ] berarti pemakaiannya adalah
optional.
d. Jika atribut ZEROFILL disertakan, MySQL akan otomatis
menambahkan atribut UNSIGNED.
e. UNSIGNED adalah bilangan tanpa tanda di depannya (misalnya
tanda negatif).
Berikut tipe-tipe data yang didukung oleh MySQL, antara lain:
a. Tipe data untuk bilangan
Bentuk Dasar
No Tipe Data Keterangan Ukuran
Penulisan

Digunakan untuk menyimpan data


bilangan bulat positif dan negatif.

TINYINT Bilangan bulat terkecil, dengan


[(M)] jangkauan untuk bilangan bertanda
1. TINYINT 1 byte
[UNSIGNED] -128 sampai dengan 127 dan untuk
[ZEROFILL] yang tidak bertanda 0 sampai dengan

255. Bilangan tak bertanda ditandai


dengan kata UNSIGNED

Digunakan untuk menyimpan data


bilangan bulat positif dan negatif.
SMALLINT
[(M)] Jangkauan untuk bilangan bertanda
2. SMALLINT 2 byte
[UNSIGNED] -32768 sampai dengan 32767 dan
[ZEROFILL] untuk yang tidak bertanda
(jangkauan unsigned) 0 sampai
dengan 65535
Digunakan untuk menyimpan data
bilangan bulat positif dan negatif.
MEDIUMINT
[(M)] Jangkauan untuk bilangan bertanda
3. MEDIUMNIT 3 byte
[UNSIGNED] -8388608 sampai dengan 8388607
[ZEROFILL] dan untuk yang tidak bertanda
(jangkauan unsigned) 0 sampai
dengan 16777215

Digunakan untuk menyimpan data


bilangan bulat positif dan negatif .

INT [(M)] Jangkauan untuk bilangan bertanda


4. INT [UNSIGNED] -2147483648 sampai dengan 4 byte
[ZEROFILL] 2147483647 dan untuk yang tidak

bertandan (jangkauan usigned) 0


sampai dengan 4294967295

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

Digunakan untuk menyimpan data


bilangan bulat positif dan negatif .

BIGINT [(M)] Jangkauan untuk bilangan bertanda


6. BIGINT [UNSIGNED] -9223372036854775808 sampai 8 byte.
[ZEROFILL] dengan 9223372036854775807 dan
untuk yang tidak bertanda 0 sampai
dengan
184467440737079551615

7. FLOAT FLOAT Digunakan untuk menyimpan data 4 byte


[(M,D)] bilangan pecahan positif dan negatif
[ZEROFILL]
presisi tunggal.

Jangkauan: -3.402823466E+38 s/d


-1.175494351E-38, 0, dan
1.175494351E-38 s/d
3.402823466E+38

Digunakan untuk menyimpan data


bilangan pecahan positif dan negatif
presisi ganda.

Tidak dapat bersifat unsigned.


DOUBLE
Nilai yang diijinkan adalah
8. DOUBLE [(M,D)] 8 byte
-1.7976931348623157E+308 hingga
[ZEROFILL]
-2.2250738585072014E-308 untuk
nilai negatif, 0, dan
2.2250738585072014E-308 hingga
1.7976931348623157E+308 untuk
nilai positif.

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

REAL [(M,D)]
10. Sinonim dari DOUBLE. 8 byte.
[ZEROFILL]

Digunakan untuk menyimpan data


bilangan pecahan positif dan negatif.
DECIMAL
11. DECIMAL [(M,D)] Misalnya DECIMAL(5,2) dapat M byte
[ZEROFILL] digunakan untuk menyimpan
bilangan -99,99 sampai dengan
99,99
NUMERIC
12. [(M,D)] Sama dengan Decimal. M byte.
[ZEROFILL]

b. Tipe tanggal dan jam


Tipe Bentuk Dasar
No Keterangan Ukuran
Data Penulisan

1. DATETIME Kombinasi tanggal dan waktu 8 byte.


dengan jangkauan dari 1000-
01-01 00:00:00 sampai dengan
9999-12-31 23:59:59

2. DATE Kombinasi tanggal dan waktu 8 byte.


dengan jangkauan dari 1000-
01-01 sampai dengan 9999-
12-31

3. TIMESTAMP TIMESTAMP Kombinasi tanggal dan waktu 4 byte.


[(M)] dengan jangkauan dari 1970-
01-01 sampai dengan 2037

4. TIME Digunakan untukmenyimpan 3 byte.


waktu dengan jangkauan dari
-838:59:59 sampai dengan
838:59:59

5. YEAR Digunakan untuk menyimpan 1 byte


data tahun dari tanggal antara
1901 sampai dengan 2155

c. Tipe data untuk karakter dan lain-lain


No Tipe Bentuk Dasar Keterangan Ukuran
Data Penulisan

1. CHAR CHAR(M) Data string dengan panjang M byte.


[BINARY] 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.

2. VARCHAR VARCHAR Ukuran L+1 byte dengan L+1 byte


(M) L<=M dan
1<=M<=255. Data string
[BINARY]
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.

3. TINYBLOB, L+1 byte, dengan L<28 . Tipe L+1 byte


TEXT atau BLOB dengan
TINYTEXT
panjang maksimum 255
karakter.

4. BLOB, L+2 byte, dengan L<216 . Tipe L+2 byte


TEXT TEXT atau BLOB dengan
panjang maksimum 65535
karakter.

5. MEDIUMBLOB, L+3 byte, dengan L<224. Tipe L+3 byte


MEDIUMTEXT TEXT atau BLOB dengan
panjang maksimum 1677215
karakter.

6. LONGBLOB, L+4 byte, dengan L<232. Tipe L+4 byte


LONGTEXT TEXT atau BLOB dengan
panjang maksimum
4294967295 karakter.

7. ENUM ENUM(nilai1 Ukuran 1 atau 2 byte 1 atau 2 byte


,nilai2,..) tergantung nilai
enumerasinya maks 65535 nilai

8. SET SET(nilai1,n Ukuran 1,2,3,4 atau 8 byte 1,2,3,4 atau


ilai2,..) tergantung jumlah anggota 8 byte
himpunan maks 64 anggota.

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 :
a. Unik atau tidak boleh ganda
b. Tidak boleh Null (kosong, tidak diketahui, tidak dapat ditentukan)
c. 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 :
a. 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.
b. 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 :
a. 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 Gambar relasi one-to-many:

b. 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. Gambar relasi one-to-one:

c. 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. Gambar relasi many-to-
many:

Anda mungkin juga menyukai