Anda di halaman 1dari 142

DESAIN BASIS DATA

SEMESTER IV
Bahasa Basis Data dapat dipilah dalam 2
bentuk :
 Data Definition Language (DDL)
 Data Manipulation Language (DML)
Data Definition Languange (DDL)

 Struktur basis data yang menggambarkan skema basis data secara keseluruhan
dan didesain dengan bahasa khusus

Contoh :
Membuat table, mengubah table, menentukan struktur penyimpanan table dan
sebagainya.
Data Manipulation Languange (DML)

 Merupakan bentuk bahasa basis data yang berguna untuk melakukan


manipulasi dan pengambilan data pada suatu basis data.

Contoh :
 Penambahan data baru ke suatu basis data
 Penghapusan data dari suatu basis data
 Pengubahan data disuatu basis data
Ada 2 jenis DML

1. Prosedural, yang mensyaratkan agar pemakai menentukan, data apa yang


diinginkan serta bagaimana cara mendapatkannya.
2. Non procedural, yang membuat pemakai dapat menentukan data apa yang
diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.
Definisi
Model Data Relasional Adalah....

Entity Relationship Model

Entity Relationship Diagram


Komponen-Komponen Pembentuk
ER-Model
Entity

Atribut

Relasi
Kardinalitas

“jumlah maksimum entitas yang dapat berelasi


dengan entitas yang lain”
Macam-macam Kardinalitas
1:1
One to One

One to many 1:M

M:1
Many to one
M:N
Many to many
>
Basis Data Relasional

 Ada 4 macam bentuk hubungan :


1. One to Many
2. Many to One
3. One to One
4. Many to Many
One to Many

 Hubungan yang berarti satu data diacu oleh banyak data

Contoh :
Many to One

 Hubungan ini mempunyai arti banyak data mengacu pada satu data.
One to One

 Hubungan ini jarang terjadi. Hubungan ini sering dipakai untuk hanya sebagai
relasi antar table master.

Contoh : setiap nasabah bank(account rekening) hanya dapat memiliki sebuah


kartu atm.
Many to Many

 Hubungan ini jarang terjadi.


Entity Relasional Diagram (ERD)

Basis Data
Tahapan Pembuatan ERD
Tentukan entity-entity yang diperlukan disesuaikan dengan
1 permintaan pemakai;
Tentukan relationship antar entity-entity;
2
Tentukan Cardinality ratio
3
Tentukan primary key diantara atribut-atribut
4
Tentukan atribut-atribut yang diperlukan dari setiap entity
5
Buatlah penamaan entity, atribut dan relationship yang unik,
6 dan hindari penamaan yang sama untuk objek yang berbeda
Contoh
Poliklinik Sehat Bugar
Setiap pasien yang akan memeriksakan kesehatan terdaftar
dalam data pasien dan Setiap pasien memiliki catatan medik
dari penyakit yang pernah diperiksakan, catatan medik juga
menyimpan jenis penyakit dari pasien. Setiap dokter memiliki
catatan medik dari pasien-pasien yang telah diperiksa.
Poliklinik juga menangani transaksi pembelian obat dari
pasien
Basis Data Akademik

 Basis data terdiri atas 3 buah table :


 Mahasiswa
 Dosen
 Kuliah
Menggunakan Mysql dengan Command
Prompt
 Ubah folder di cmd menjadi “ cd c:\xampp\mysql\bin lalu enter
 Ketik “mysql –u root –p lalu enter
 Jika minta password masukkan password jika tidak ada enterkan saja
 Akan muncul tampilan seperti ini jika berhasil
show databases;
create database dbakademik;
show databases;
use dbakademik
create table dosen
show tables;
describe dosen;
Cara 1:
SELECT
mata_kuliah.mata_kuliah,mata_kuliah.sks,tapel.tapel,
tapel.semester,tapel.tahun
FROM mata_kuliah,tapel
WHERE mata_kuliah.id_tapel=tapel.id_tapel
ORDER BY mata_kuliah.id_tapel ASC
Cara 2:
SELECT a.mata_kuliah, a.sks, b.tapel, b.semester, b.tahun
FROM mata_kuliah a,tapel b
WHERE a.id_tapel=b.id_tapel
ORDER BY a.id_tapel ASC
MODEL DATA RELASIONAL

Basis Data
Konsep Relational Model
● Model Relasional pertama kali dicetuskan
oleh Dr. E.F. Codd di IBM pada tahun 1970
dalam paper dengan judul : "A Relational
Model for Large Shared Data Banks,"
Communications of the ACM, June 1970.
RELATIONAL DATA MODEL :
● merepresentasikan data pada database
sebagai kumpulan dari relasi-relasi
(relations)
Tiga alasan mengapa model relasi mempunyai peranan
penting dalam perancangan basis data yaitu :
● Mempunyai piranti komunikasi yang baik antara user &
designer
● Model relasional mendefinisikan salah satu kriteria
perancangan basis data yang penting yaitu relasi bentuk
normal.
● Struktur data yang direpresentasikan oleh relasi dapat
segera dikonversikan & diimplementasikan ke RDBMS.
APA YANG DISEBUT DENGAN RELASI

● Relasi pertama kali didefinisikan


menggunakan teori himpunan. Cara
termudah untuk mendefinisikan sebuah relasi
adalah sebagai sebuah tabel dimana data-
datanya disimpan dalam baris tabel.
Contoh
STRUKTUR LOJIK
● Representasi lojik berarti bahwa sebuah
relasi harus :
– tidak terdapat duplikasi baris
– urutan baris tidak diperhatikan
– setiap kolom dalam suatu relasi mempunyai
sebuah nama yang unik
● Keuntungan Basis Data Relasional
1. Bentuknya sederhana
2. Mudah untuk melakukan berbagai operasi data
Istilah dalam Basis Data Relasional
● Relasi : Sebuah tabel yang terdiri dari beberapa kolom
dan beberapa baris
● Atribut : Kolom pada sebuah relasi
● Tupel : Baris pada sebuah relasi
● Domain : Kumpulan nilai yang valid untuk satu atau lebih
atribut
● Derajat (degree) : Jumlah atribut dalam sebuah relasi
● Cardinality : Jumlah tupel dalam sebuah relasi
Perbedaan Istilah
Istilah Relasional Key
● Super Key
Satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah
tupel di dalam relasi
● Candidate Key
Atribut di dalam relasi yang biasanya mempunyai nilai unik
● Primary Key
Candidate key yang dipilih untuk mengidentifikasikan tupel secara unik dalam
relasi
● Alternate Key
Candidate key yang tidak dipilih sebagai primary key
● Foreign Key
Atribut dengan domain yang sama yang menjadi kunci utama pada sebuh
relasi tetapi pada relasi lai atribut tersebut hanya sebagai atribut biasa
Bahasa pada basis data relasional
Bahasa yang digunakan adalah bahasa query sebagai pernyataan yang
diajukan untuk mengambil informasi
Terbagi 2 :
1. Bahasa Formal
Bahasa query yang diterjemahkan dengan menggunakan simbol-
simbol matematis
2. Bahasa Komersial
Bahasa query yang dirancang sendiri oleh programmer menjadi suatu
program aplikasi agar pemakai lebih mudah menggunakannya (user
friendly)
Bahasa Formal
● Aljabar relasional
● Kalkulus relasional
ALJABAR RELASIONAL
● kumpulan operasi yang digunakan untuk
memanipulasi seluruh relasi.
● Berdasar teori himpunan : gabungan (union),
irisan (intersection), beda (difference) dan
hasil kali cartesian (cartesian product)
● khusus untuk relasi basis data : select,
project, join, dan division
Kalkulus relasional
● Kalkulus relasional tupel
● Kalkulus Relasional Domain
Bahasa Komersial
● Bahasa query yang dirancang sendiri oleh programmer menjadi
suatu program aplikasi agar pemakai lebih mudah
menggunakannya (user friendly)
Contoh :
– QUEL

Berbasis pada bahasa kalkulus relasional


– QBE

Berbasis pada bahasa kalkulus relasional


– SQL

Berbasis pada bahasa kalkulus relasional dan aljabar


relasional
Integritas Data

Perancangan Basis Data


Integritas Data
• Integritas basis data atau sering disebut database integrity adalah
suatu masalah utama di dalam database.
• Data dalam database harus tetap konsisten atau valid, karena
suatu data seharusnya mengikuti sejumlah karakteristik dasar
sesuai ketentuan yang telah ditentukan
• Penerapan aturan-aturan ini akan dapat menghindarkan basis
data dari upaya-upaya atau kesalahan yang biasanya tidak
disengaja, khususnya dalam melakukan pemanipulasian data,
yang dapat membuat basis data menjadi tidak konsisten atau
integritasnya terganggu
• Batasan Integritas Data (Data Integritas Constrain) adalah cara
untuk membatasi data yang dapat disimpan di dalam basis data
Data Integritas Constrain
• Batasan integritas menjaga terjadinya
kerusakan terhadap database, dengan
memastikan bahwa perubahan terhadap
database tidak menyebabkan terjadinya
inkonsistensi data
Jenis Integritas Data
• Integritas Entitas (entity Integrity)
• Integritas Domain (domain Integrity)
• Integritas Referensial (referential Integrity)
• Integritas Enterprise (enterprise/User Defined
Integrity)
Integritas Entitas
• Integritas entitas mendefinisikan sebuah baris
sebagai entitas yang unik dalam suatu tabel
atau dimana tidak ada baris data duplikat
dalam satu tabel
• Integritas entitas memaksa dari column atau
primary key dari suatu tabel
• Misalnya unique, primary key, dll
Contoh
• Create tabel pembelian
(Idpem smallint, idmodel smallint,
keterangan varchar(40),
primary key (idpem)
unique (idpem, idmodel));
Integritas Domain
• Domain adalah nilai-nilai yang dimungkinkan
diasosiasikan dengan setiap atribut
• Integritas domain adalah validasi dari
masukan untuk sebuah kolom
• Misalnya dengan membatasi tipe data (data
types), format, atau range nilai, dll
• Menerapkan not null
Contoh
• Create tabel penulis
(idpenulis smallint unsigned not null,
tahunlahir year not null,
Kotalahir varchar(40) not null default
‘kosong’);
• Create tabel nilai
(nilaiakhir numeric (3,2) constraint value-test check
Integritas referensial
• Integritas referensial memastikan bahwa
seluruh nilai dari foreign key cocok dengan
nilai primary key yang dihubungkan
• Data pada foreign key harus sesuai dengan
primary key, yang rtinya :
– Tipe data dan ukuran sama
– Konsistensi tetap terjaga ketika ada penghapusan,
pergantian data dan penambahan data pada tabel
Contoh
Keadaan Awal:
Kd_Pelangg
Nama Kd_Kota Kd_Kota Nama_Kota
an
A001 Aditya 0501 0501 Semarang
B001 Bakdi 0502 0502 Salatiga
B002 Bramanto 0502 0503 Kendal
Efek Tanpa Integritas Referensial
Keadaan Setelah data
0502 pada KOTA
dihapus: 0502 Salatiga

Kd_Pelangg
Nama Kd_Kota Kd_Kota Nama_Kota
an
A001 Aditya 0501 0501 Semarang
B001 Bakdi 0502 0503 Kendal
B002 Bramanto 0502
Menjadi
tidak konsisten
Efek Integritas Referensial
Keadaan Setekah data
0502 pada KOTA
dihapus: 0502 Salatiga

Kd_Pelangg
Nama Kd_Kota Kd_Kota Nama_Kota
an
A001 Aditya 0501 0501 Semarang
B002 Bramanto 0502 0503 Kendal

Ikut terhapus! atau


B001 Bakdi 0502
penghapusan ditolak
Penanganan
• Opsi ketika suatu record pada tabel yang
direferensikan oleh suatu fereign key dihapus
atau di ganti nilainya
– On delete (merupakan tindakan pada tabel yang
direferensikan terjadi penghapusan record)
– On update ( merupakan tindakan apabila data
tabel yang direferensikan mengalami perubahan
nilai record)
• Tindakan yang dapat diatur pada on delete ataupun on
update ada dua yaitu
– Cascade (mengikuti apa yang dilakukan oleh primary key
yang direferensikan)
– No action (tidak terjadi apa-apa)
• Contoh
– On delete cascade artinya adalah jika nilai primary key
yang direferensikan dihapus maka nilai foreign key akan
ikut terhapus
Integritas Enterprise
• Mengizinkan untuk menentukan spesific
business rules sendiri yang tidak sama pada
kategori integritas yang lain
• Misalnya “ Saldo tabungan tidak boleh negatif ”
• Atau
• Gaji operator tidak boleh melebihi Rp.
3.000.000
NORMALISASI

Basis Data
Definisi
• Istilah Normalisasi berasal dari E. F.Codd
• Normalisasi adalah suatu metodologi
tersendiri untuk menciptakan struktur tabel
(relasi) dalam basis data
• Normalisasi terkadang hanya diipakai sebagai
perangkat verifikasi terhadap tabel-tabel yang
dihasilkan oleh metodologi lain ( misalnya E-
Definisi
• Kroenke mendefinisikan:
• Normalisasi sebagai proses untuk mengubah
suatu relasi yang memiliki masalah tertentu ke
dalam dua buah relasi atau lebih yang tida
memiliki masalah tersebut.
• Masalah yang dimaksud oleh kroenke ini
sering disebut dengan istilah anomali.
Definisi
• Normalisasi adalah teknik dalam logical desain
sebuah basis data / database untuk
mengelompokkan atribut dari suatu relasi
sehingga membentuk struktur relasi yang baik
(tanpa redudansi).
• Normalisasi adalah proses pengelompokan
atribute­atribute dari suatu relasi sehingga
Keuntungan normalisasi
• Meminimalkan ukuran penyimpanan yang
diperlukan untuk menyimpan data.
• Meminimalkan resiko inkonsistensi data pada
basis data
• Meminimalkan kemungkinan anomali
pembaruan
• Memaksimalkan stabilitas struktur data
Rancangan database
dikatakan buruk jika :
• Data yang sama disimpan di beberapa tempat
• Ketidak mampuan untuk menghasilkan
informasi tertentu
• Terjadi kehilangan informasi
• Terjadi adanya redudansi dan duplikasi data
• Timbul adanya NULL value
Anomali
• Proses pada basis data yangg memerikan efek
samping yang tidak diharapkan.
• Jenis anomali
– Update anomali
– Insert anomali
– Delete anomali
Update anomali
Error yang terjadi sebagai akibat inkonsistensi data yang terjadi sebagai akibat
dari operasi update record/tuple dari sebuah relation
PEMASOK KOTA BARANG JUMLAH
Kartika Jakarta Monitor GGG 10
Citra Bandung Zip-drive 4
Candra Jakarta Keyboard 5
Citra Bandung Mouse CCP 25

Pemasok Citra Pindah ke kota Bogor, maka setelah dilakukan perubahan data :
PEMASOK KOTA BARANG JUMLAH
Kartika Jakarta Monitor GGG 10
Citra Bogor Zip-drive 4
Candra Jakarta Keyboard 5
Citra Bandung Mouse CCP 25
Insert Anomali
Error yang terjadi sebagai akibat operasi insert record/tuple pada sebuah relation
NO_SISWA NAMA_KURSUS BIAYA
10 b. Inggris 60.000
10 b. Prancis 80.000
10 b. Mandarin 60.000
15 b. Inggris 60.000
20 b. Jepang 65.000

Jika akan dibuka kursus baru, misalnya bahasa Arab dengan biaya 70.000, tetapi
Belum ada seorangpun yang mengambil kursus ini. Akibatnya data kursus baru ini tidak
Dapat dicatat.
Delete Anomali
• Error yang terjadi sebagai akibat operasi delete record/tuple pada sebuah
relation.
Anomali delete akan terjadi jika data no_siswa 20 akan di hapus, maka
semua data tentang kursus
NO_SISWA b. Jepang akan ikut terhapus
NAMA_KURSUS BIAYA
10 b. Inggris 60.000
10 b. Prancis 80.000
10 b. Mandarin 60.000
15 b. Inggris 60.000
20 b. Jepang 65.000
Jika di normalkan
NAMA_KURSUS BIAYA
b. Inggris 60.000
b. Prancis 80.000
b. Mandarin 60.000
b. Jepang 65.000

NO_SISWA NAMA_KURSUS
10 b. Inggris
10 b. Prancis
10 b. Mandarin
15 b. Inggris
20 b. Jepang
Beberapa konsep
• Atribut / key
• Ketergantungan fungsi
Atribut / Key
• Super key
yaitu himpunan dari satu atau lebih entitas
yang digunakan untuk mengidentifikasikan
secara unik sebuah entitas dalam entitas set.
• Candidat key
yaitu satu attribute atau satu set minimal
atribute yang mengidentifikasikan secara unik
suatu kejadian yang spesifik dari entity.
• Primary key
Yaitu satu atribute atau satu set minimal atribute yang tidak
hanya mengidentifikasikan secara unik suatu kejadian yang
spesifik tapi juga dapat mewakili setiap kejadian dari suatu
entity
• Alternate key
yaitu kunci kandidat yang tidak dipakai sebagai primary key
• Foreign key
yaitu satu atribute (atau satu set atribute) yang melengkapi
satu relationship (hubungan yang menunjukkan ke induknya.
Contoh
Ketergantungan
• Ketergantungan/dependensi menjelaskan
hubungan antar atribut, atau secara lebih
khusus menjelaskan nilai suatu atribut yang
menentukan nilai atribut lainnya.
• Macam-macam ketergantungan
– Ketergantungan fungsional
– Ketergantung fungsional sepenuhnya
– Ketergantungan total
Ketergantungan fungsional
• Suatu atribut Y mempunyai ketergantungan
fungsional terhadap atribut X jika dan hanya
jika setiap nilai X berhubungan dengan sebuah
nilai Y
X→Y
• Yang berarti X secara fungsional menentukan
Y atau Y secara fungsional tergantung pada X
Contoh
NPM

NPM → namaMhs
Namakul, npm → nihuruf
Npm -→ nihuruf
Namakul -→npm
Ketergantungan transitif
• Definisi bentuk ketergantungan transitif
adalah sebagai berikut :
atribu Z mempunyai ketergantungan transitif
tehadap X, bila :
– Y memiliki ketergantungan fungsional terhadap X
(X→Y)
– Z memiliki ketergantungan fungsional terhadap Y
( Y → Z)
Contoh

Kuliah → tempat, waktu


Tempat → Ruang
Kuliah → Tempat → Ruang
Tahapan Normalisasi
Sebuah tabel dikatakan baik (efisien) atau
normal jika memenuhi 3 kriteria sbb:
1. Jika ada dekomposisi (penguraian) tabel, maka
dekomposisinya harus dijamin aman (Lossless-
Join Decomposition). Artinya, setelah tabel
tersebut diuraikan / didekomposisi menjadi
tabel-tabel baru, tabel-tabel baru tersebut bisa
menghasilkan tabel semula dengan sama persis.
2. Terpeliharanya ketergantungan fungsional pada
saat perubahan data (Dependency
Preservation).
3. Tidak melanggar Boyce-Code Normal Form
Bentuk tidak normal (unnormal)
• Bentuk ini merupakan kumpulan data yang
akan direkam, tidak ada keharusan mengikuti
suatu format tertentu. Bisa saja data tidak
lengkap atau terduplikasi. Data dikumpulkan
apa adanya sesuai dengan saat mengimput
Contoh

No Mhs Nama Mhs Jurusan KodeMK Nama MK KodeDosen Nama Dosen Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
AKN201 Akuntansi Keuangan D310 Lia B

MKT300 Dasar Pemasaran B212 Lola A


No Mhs Nama Mhs Jurusan KodeMK Nama MK KodeDosen Nama Dosen Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
AKN201 Akuntansi Keuangan D310 Lia B

MKT300 Dasar Pemasaran B212 Lola A


Bentuk Normal Tahap Pertama (1st NF)
• 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
unnormal

Bentuk 1st NF
unnormal
No Mhs Nama Mhs Jurusan KodeMK Nama MK KodeDosen Nama Dosen Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
AKN201 Akuntansi Keuangan D310 Lia B

MKT300 Dasar Pemasaran B212 Lola A

Bentuk 1 st NF
No Mhs Nama Mhs Jurusan KodeMK Nama MK KodeDosen Nama Dosen Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
2683 Welli MI MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
5432 Bakri Ak. AKN201 Akuntansi Keuangan D310 Lia B

5432 Bakri Ak. MKT300 Dasar Pemasaran B212 Lola A


Bentuk normal ke 2
• Memenuhi bentuk 1NF
• 2nd normal form : Tiap attribut bukan kunci harus bergantung fungsi ke
attribut kunci
• Bergantung fungsi
A→B,C,D,E
A adalah kunci, sedangkan B,C,D,E bergantung fungsi terhadap A
• Menjadikan pengelompokan dalam tabel-tabel yang relevan
2 NF
st
2 NF
No Mhs Nama Mhs Jurusan KodeMK Nama MK KodeDosen Nama Dosen Nilai
2683 Welli MI MI350 Manajamen DB B104 Ati A
2683 Welli MI MI465 Analsis Prc. Sistem B317 Dita B
5432 Bakri Ak. MI350 Manajemen DB B104 Ati C
5432 Bakri Ak. AKN201 Akuntansi Keuangan D310 Lia B

5432 Bakri Ak. MKT300 Dasar Pemasaran B212 Lola A

Bentuk 2 NF KodeMK Nama MK KodeDosen Nama Dosen


No Mhs KodeMK Nilai
MI350 Manajamen DB B104 Ati
2683 MI350 A
MI465 Analsis Prc. Sistem B317 Dita
2683 MI465 B
AKN201 Akuntansi Keuangan D310 Lia
5432 MI350 C
MKT300 Dasar Pemasaran B212 Lola
5432 AKN201 B
No Mhs Nama Mhs Jurusan
5432 MKT300 A
2683 Welli MI
5432 Bakri Ak.
Bentuk normal ke 3
• Memenuhi bentuk 2 NF
• Atribut bukan kunci tidak memiliki
ketergantungan transitif terhadap kunci utama
• Ketergantungan transitif
A→B,C,D,E
C→E
C adalah trans untuk E dan A, maka harus di
dekomposisi menjadi :
Contoh
KodeMK Nama MK KodeDosen Nama Dosen
MI350 Manajamen DB B104 Ati
MI465 Analsis Prc. Sistem B317 Dita
AKN201 Akuntansi Keuangan D310 Lia
MKT300 Dasar Pemasaran B212 Lola

Bentuk 3 NF
KodeDosen Nama Dosen KodeMK Nama MK KodeDosen
B104 Ati MI350 Manajamen DB B104
B317 Dita MI465 Analsis Prc. Sistem B317
D310 Lia AKN201 Akuntansi Keuangan D310
B212 Lola MKT300 Dasar Pemasaran B212
Diagram Normalisasi

Anda mungkin juga menyukai