Dasar Dasar MYSQL dan Normalisasi Tujuan

Nama

: Yoachim Fabio Marcello Tarong

NIM

: 1705552026

Kelompok

: 16

MODUL 1
Dasar-Dasar MYSQL dan Normalisasi
Tujuan
1.

Mampu menentukan key yang tepat

2.


Mampu melakukan normalisasi terhadap suatu sistem yang benar

3.

....

Tugas Pendahuluan
1.

Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya
dilakukan dalam pembuatan suatu program basis data.

2.

Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya
dilakukan

dalam

proses


normalisasi,

berikan

contoh

untuk

menggambarkan proses yang terjadi di setiap tahapan normalisasi.

3.

Sebutkan macam-macam tipe data yang ada dalam MySQL serta
kebutuhan memory dan penggunaannya dengan jelas.

4.

Sebutkan kegunaan key dalam suatu tabel. Lalu sebutkan dan jelaskan
macam - macam key yang ada dalam konsep basis data.


5.

Sebutkan dan jelaskan macam-macam relationship (keterhubungan) yang
ada dalam konsep basis data.

6.

Sebutkan dan jelaskan masing-masing relationship (keterhubungan) yang
terdapat pada basis data.

Jawaban
1.

Tahapan dalam pembuatan suatu program basis data :

1.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 kebutuhankebutuhan 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 user yang baru
beserta aplikasi-aplikasinya. Kebutuhan-kebutuhan dari para user dan
aplikasi-aplikasi inilah yang kemudian dikumpulkan dan dianalia :

1.1.1 Menentukan kelompok pemakai dan bidang-bidang aplikasinya
1.1.2 Peninjauan dokumentasi yang ada
1.1.3 Analisa lingkungan operasi dan pemrosesan data
1.1.4

Daftar pertanyaan dan wawancara

1.2

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 model seperti ER/EER modelselama tahap ini. Dalam
conceptual schema, kita harus merinci aplikasi-aplikasi database yang

diketahui dan transaksi-transaksi yang mungkin. Tahap perancangan
database secara konseptual mempunyai 2 aktifitas pararel :

1.2.1 Perancangan skema konseptual
Menguji kebutuhan-kebutuhan data dari suatu database yang merupakan
hasil dari tahap 1 dan menghasilkan sebuah conceptual database
schemapada 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
1.2.2 Perancangan Transaksi
Menguji aplikasi-aplikasi database dimana 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 DBMSindependent. Transaksi-transaksi ini akan digunakan untuk memproses dan
memanipulasi database suatu saat dimana database tersebut dilaksanakan.
1.3

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.Faktorfaktor ekonomi dan organisasi yang mempengaruhi satu sama lain dalam
pemilihan DBMS :
1.3.1 Struktur data
Jika data yang disimpan dalam database mengikuti struktur hirarki, maka

suatu jenis hirarki dari DBMS harus dipikirkan.
1.3.2 Personal yang telah terbiasa dengan suatu sistem
Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu
DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar.
1.3.3 Tersedianya layanan penjual
Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk
membantu memecahkan beberapa masalah sistem.

1.4

Tahap 4 Prancangan 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.1.4 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.
1.2.4 Penyesuaian 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 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.
1.5


Tahap 5 Perancangan database secara fisik
Perancangan database secara fisik merupakan proses pemilihan strukturstruktur penyimpanan dan jalur-jalur akses pada file-file database untuk

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 database secara fisik :

1.5.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.
1.5.2 Space utility
Jumlah ruang penyimpanan yang digunakan oleh file-file database dan
struktur-struktur jalur akses.
1.5.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.
1.6

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 database tersebut 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. Transaksitransaksi 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.

Tahapan dalam proses normalisasi :

2.1

Bentuk Tidak Normal (UNNORMALIZED FORM)
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada
keharusan
mengikuti format tertentu, dapat saja data tidak lengkap atau terduplikasi.
Data dikumpulkan apa adanya sesuai dengan saat menginput.
Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi
tabel yang memenuhi kriteria 1NF adalah kita harus merubah seluruh
atribut yang multivalue menjadi atribut single value, dengan cara
menghilangkan repeating group pada tabel di bawah ini.
Tabel 2.1 Unnormalized Form

NomorPegawai
NamaPegawai
P27
Arif
P28
Syamsul
P29
Siti
P30
Gary
Repeating Group (elemen data

Nomor Klien
Nama Klien
K01,K02,K04
Dian,Slamet,Widodo
K03,K07
JuntNatalia
K05
Vander
K01,K07
DianNatalia
berulang) adalah Nomor Klien dan Nama

Klien
2.2

Bentuk Normal Ke Satu (1NF)
Pada tahap ini dilakukan penghilangan beberapa group elemen yang
berulang agar menjadi satu harga tunggal yang berinteraksi di antara setiap
baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang
atomic (bersifat atomic value). Atom adalah zat terkecil yang masih

memiliki sifat induknya, bila terpecah lagi maka ia tidak memiliki sifat
induknya.
Syarat normal ke satu (1-NF) antara lain:
2.2.1 Setiap data dibentuk dalam flat file, data dibentuk dalam satu record demi
satu record nilai dari field berupa atomic value.
2.2.2 Tidak ada set atribute yang berulang atau bernilai ganda.
2.2.3 Telah ditentukannya primary key untuk tabel atau relasi tersebut.
2.2.4 Tiap atribut hanya memiliki satu pengertian.
Langkah pertama yang dilakukan pada Tabel 2.1 tersebut adalah
menghilangkan elemen data yang berulang dengan data-data Pelanggan
yang sesuai pada setiap baris. Hasil dari tabel yang telah memenuhi bentuk
normal pertama dapat dilihat pada Tabel 2.2 kita dapat mengidentifikasi
primary key untuk relasi Pelayanan yang masih memiliki composite key
(Nomor_Pegawai, Nomor_Klien). Pada kasus ini kita akan memperoleh
primary key yang bersifat composite key. Relasi Pelayanan dapat
didefinisikan sebagai berikut. Pelayanan =(NomorPegawai, NamaPegawai,
NomorKlien, NamaKlien).
Tabel 2.2 1NF

NomorPegawai
P27
P27
P27
P28
P28
P29
P30
P30

2.3

NamaPegawai
Arif
Arif
Arif
Syamsul
Syamsul
Siti
Gary
Gary

Nomor Klien
K01
K02
K04
K03
K07
K05
K01
K07

Nama Klien
Dian
Slamet
Widodo
Junt
Natalia
Vander
Dian
Natalia

Bentuk Normal kedua(2NF)
Pada kasus ini kita akan memperoleh primary key yang bersifat composite
key. Relasi.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:
2.3.1 Bentuk data telah memenuhi kriteria bentuk normal kesatu.
2.3.2 Atribute bukan kunci (non-key) haruslah memiliki ketergantungan
fungsional sepenuhnya (fully functional dependency) pada kunci utama
atau primary key.
Tabel 2.3 2NF

Nomor Pegawai
P27
P28
P29
P30

Nama Pegawai
Arif
Syamsul
Siti
Gary

Tabel 2.4 2NF

Nomor Klien
K01
K02
K03
K04
K05
K07

Nama Klien
Dian
Slamet
Junt
Widodo
Vander
Natalia

Tabel 2.5 2NF

Nomor Pegawai
P27
P27
P27
P28
P28
P29
P30
P30
2.4

Bentuk Normal Ketiga (3NF)

Nomor Klien
K01
K02
K04
K03
K07
K05
K01
K07

Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari pada
relasi 1-NF,namun relasi tersebut masih mungkin mengalami kendala bila
terjadi anomali peremajaan (update) terhadap relasi tersebut
Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut:
2.4.1 Bentuk data telah memenuhi kriteria bentuk normal kedua
2.4.2 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 priamry key di relasi
itu saja.
3.

Secara garis besar, database MySQL mempunyai 3 macam tipe data,
yaitu:Tipe Data Numeric,Tipe Data Date & Time,dan Tipe Data String.

3.1

Tipe Data Numeric
Tipe Data Numeric pada database MySQL terbagi atas beberapa macam
tipe data, yaitu:

3.1.1 INT
Digunakan untuk menyimpan data yang berupa bilangan bulat positif dan
negatif dengan jangkauan antara -2.147.483.648 s/d 2.147.483.647. Tipe
data ini mempunyai ukuran 4 byte (32 bit).
3.1.2 TINYINT
Digunakan untuk menyimpan data yang berupa bilangan bulat positif dan
negatif dengan jangkauan antara -128 s/d 127. Tipe data ini mempunyai
ukuran 1 byte (8 bit).
3.1.3 SMALLINT
Digunakan untuk menyimpan data yang berupa bilangan bulat positif dan
negatif dengan jangkauan antara -32.768 s/d 32.767. Tipe data ini
mempunyai ukuran 2 byte (16 bit).

3.1.4 MEDIUMINT
Digunakan untuk menyimpan data yang berupa bilangan bulat positif dan
negatif dengan jangkauan antara -8.388.608 s/d 8.388.607. Tipe data ini
mempunyai ukuran 3 byte (24 bit).
3.1.5 BIGINT
Digunakan untuk menyimpan data yang berupa bilangan bulat positif dan
negatif dengan jangkauan antara -8.388.608 s/d 8.388.607. Tipe data ini
mempunyai ukuran 8 byte (64 bit).
3.1.6 FLOAT
Digunakan untuk menyimpan data yang berupa bilangan pecahan positif
dan negatif presisi tunggal. Tipe data ini mempunyai ukuran 4 byte (32
bit).
3.1.7 DOUBLE
Digunakan untuk menyimpan data yang berupa bilangan pecahan positif
dan negatif presisi ganda. Tipe data ini mempunyai ukuran 8 byte (64 bit).
3.1.8 DECIMAL
Digunakan untuk menyimpan data yang berupa bilangan pecahan positif
dan negatif presisi ganda. Tipe data ini mempunyai ukuran 8 byte (64 bit).
3.1.9 REAL
Digunakan untuk menyimpan data yang berupa bilangan pecahan positif
dan negatif. Tipe data ini mempunyai ukuran 8 byte (64 bit).
3.1.10 NUMERIC
Digunakan untuk menyimpan data yang berupa bilangan pecahan positif
dan negatif. Tipe data ini mempunyai ukuran 8 byte (64 bit).
3.2

Tipe Data Date & Time
Tipe Data Date & Time pada database MySQL terbagi atas beberapa
macam tipe data, yaitu:

3.2.1 DATE
Digunakan untuk meyimpan data tanggal dalam format YY:MM:DD

3.2.2 DATETIME
Digunakan untuk menyimpan data tanggal dan waktu dalam format
YY:MM:DD HH:MM:SS
3.2.3 TIME
Digunakan untuk menyimpan data waktu dalam format HH:MM:SS
3.2.4 YEAR
Digunakan untuk menyimpan data tahun.
3.3

Tipe Data String
Tipe Data String pada database MySQL terbagi atas beberapa macam tipe
data, yaitu:

3.3.1 CHAR
Digunakan untuk menyimpan data karakter/string dengan ukuran tetap.
Tipe data ini mempunyai jangkauan antara 0 sampai dengan 255 karakter.
3.3.2 VARCHAR
Digunakan untuk menyimpan data karakter/string dengan ukuran dinamis.
Tipe data ini mempunyai jangkauan antara 0 sampai dengan 255 untuk
MySQL versi 4.1. Dan mempunyai jangkauan antara 0 s/d 65.535 untuk
MySQL versi 5.0.3.
3.3.3 BLOB
BLOB (Binary Large Object) adalah tipe data yang digunakan untuk
menyimpan data biner seperti files, images, suara, dll. Tipe data ini
mempunyai jangkauan 216-1 byte.
3.3.4 TINYBLOB
Digunakan untuk menyimpan data biner seperti file, image, dan suara. Tipe
data ini mempunyai jangkauan 255 byte.
3.3.5 MEDIUMBLOB
Digunakan untuk menyimpan data biner seperti file, image, dan suara. Tipe
data ini mempunyai jangkauan 244-1 byte.
3.3.6 LONGBLOB

Digunakan untuk menyimpan data biner seperti file, image, dan suara. Tipe
data ini mempunyai jangkauan 232-1 byte
3.3.7 TEXT
Digunakan untuk meyimpan data text. Tipe data ini mempunyai jangkauan
antara 0 sampai dengan 65.535 (216-1) karakter.
3.3.8 TINYTEXT
Digunakan untuk meyimpan data text. Tipe data ini mempunyai jangkauan
antara 0 s/d 255 untuk MySQL versi 4.0, dan mempunyai jangkauan antara
0 s/d 65.535 untuk MySQL versi 5.0.3.
3.3.9 MEDIUMTEXT
Digunakan untuk meyimpan data text. Tipe data ini mempunyai jangkauan
antara 0 sampai dengan 224-1 karakter
3.3.10 LONGTEXT
Digunakan untuk meyimpan data text. Tipe data ini mempunyai jangkauan
antara 0 sampai dengan 232-1 karakter.
3.3.11 ENUM
Digunakan untuk menyimpan data enumerasi (kumpulan data)
3.3.12 SET
Digunakan untuk menyimpan data himpunan data.
4.

4.1

Key di dalam database berfungsi sebagai suatu cara untuk mengidentifikasi
dan menghubungkan satu tabel data dengan tabel yang lain.
Jenis-Jenis Key :
Primary Key (Kunci Primer)
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:
4.1.1 Unik atau tidak boleh ganda
4.1.2 Tidak boleh Null (kosong, tidak diketahui, tidak dapat ditentukan)
4.1.3 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.
Contoh Primary Key
Contoh:
File pegawai berisi attribute
No Induk
No ktp
Nama
Tempat lahir
Tanggal lahir
Alamat
Kota
No induk dan no ktp adalah kunci calon (Candidate Key) dan untuk kunci
utama (primary key) adalah salah satu yang dipilih dari kunci calon.
Misalnya No. induk di jadikan primary key, maka primary key nya adalah
no induk.

Gambar 4.1 Primay Key

Nomor_pesanan sebagai primary key di tabel pesanan
Nomor_pesanan sebagai foreign key di tabel barang_pesanan.

4.2

Foreign Key (Kunci Tamu)
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.
Contoh Foreign Key

Gambar 4.2 Foreign Key

Pada gambar diatas, nim pada table mhs adalah primary key. Sedangkan
primary key pada table matkul adalah id_matkul. Lalu id_matkul
menempel pada table mhs yang kita sebut sebagai foreign key.
Biasanya disebut table yang berisi foreign key sebagai table anak karena
table tersebut mengait pada table lain. Sedangkan table yang terkait saya
sebut sebagai table induk. Pada contoh table di atas, mhs sebagai table
anak sedangkan matkul sebagai table induk.
4.3

Candidat key (Kunci kandidat/kunci calon)
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 sbb:

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

4.3.2 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.
Contoh dari candidate key adalah:
Untuk entiti 'supplier' candidate key yang dapat kita pilih adalah atribut
SNo, karena secara fungsional atribut SName, Status, dan City bergantung
ke atribut SNo.
Contoh Candidate Key
File pegawai berisi attribute
No induk
No ktp
Nama
Tempat lahir
Tanggal lahir
Alamat
Kota
Kunci kandidat disini adalah:
No induk
No ktp

Gambar 4.3 Candidate Key

4.4

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.
Contoh Composite Key:
suatu entitas yang mewakili masing-masing modul siswa hadir di
Universitas. entitas ini memiliki nim dan kode_matakuliah sebagai kunci
utama. Setiap atribut yang membentuk kunci utama adalah kunci
sederhana karena masing-masing merupakan referensi unik ketika
mengidentifikasi siswa dalam satu kasus dan modul yang lain.
Sebaliknya, dengan menggunakan contoh yang sama, bayangkan kita
mengidentifikasi seorang mahasiswa oleh NamaBelakang + NamaDepan
mereka. Di tabel siswa tersebut pada modul kunci utama yaitu
NamaDepan + NamaBelakang + kode_matakuliah. Karena NamaBelakang
+ NamaDepan merupakan referensi unik untuk mahasiswa, itu bukanlah
sebuah kunci sederhana, itu adalah kombinasi dari atribut yang digunakan
untuk secara unik mengidentifikasi seorang mahasiswa. Oleh karena itu
kunci utama untuk entitas ini adalah kunci komposit.
Tidak ada pembatasan diterapkan pada atribut tentang (awal) kepemilikan
mereka dalam model data. Ini berarti bahwa setiap satu, tidak ada, atau
semua, dari beberapa atribut dalam kunci senyawa dapat menjadi kunci
asing. Dimana kunci asing mungkin sendiri dapat menjadi kunci majemuk.

4.5

Alternative Key adalah candidate key yang tidak dipilih sebagai primary
key.

4.6

Sekunder key adalah sebuah atribut atau kombinasi yang digunakan hanya
untuk tujuan pengambilan data.

5.

Relasi adalah hubungan antara tabel yang mempresentasikan hubungan
antar objek di dunia nyata. Relasi merupakan hubungan yang terjadi pada
suatu tabel dengan lainnya yang mempresentasikan hubungan antar objek
di dunia nyata dan berfungsi untuk mengatur mengatur operasi suatu
database. Hubungan yang dapat dibentuk dapat mencakup 3 macam
hubungan, yaitu :

5.1

One-To-One (1-1)
Mempunyai pengertian "Setiap baris data pada tabel pertama dihubungkan
hanya ke satu baris data pada tabel ke dua". Contohnya : relasi antara tabel
mahasiswa dan tabel orang tua. Satu baris mahasiswa hanya berhubungan
dengan satu baris orang tua begitu juga sebaliknya.

Gambar 5.1 One To One

5.2

One-To-Many (1-N)
Mempunyai pengertian "Setiap baris data dari tabel pertama dapat
dihubungkan ke satu baris atau lebih data pada tabel ke dua". Contohnya :
relasi perwalian antara tabel dosen dan tabel mahasiswa. Satu baris dosen
atau satu dosen bisa berhubungan dengan satu baris atau lebih mahasiswa

Gambar 5.1 One To Many

5.3

Many-To-Many (N-M)

Mempunyai pengertian "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 5.3 Many To Many
6.