Database Design
9-1
Pengantar Konsep Database Relasional
Tujuan
• Pelajaran ini akan membahas tujuan berikut:
− Menentukan primary key
− Menentukan foreign key
− Menentukan aturan integritas kolom
− Mengidentifikasi elemen baris, kolom, primary key, unique key, dan foreign key pada diagram tabel yang berisi elemen- elemen ini
− Mengidentifikasi pelanggaran aturan integritas data
Tujuan
• Model data konseptual akan ditransformasikan menjadi desain database relasional
• Ini berarti bahwa entitas, atribut, hubungan, dan pengidentifikasi unik kami akan diterjemahkan ke dalam objek dalam database relasional
• Bandingkan ini dengan desainer pakaian yang
mengambil desainnya dari kertas dan menerapkannya ke kain
• Perancang perlu memahami cara menjahit desain
seperti Anda harus memahami struktur objek database
relasional
Database Relasional yang Digambarkan
• Database relasional adalah database yang dilihat oleh pengguna sebagai kumpulan tabel dua dimensi,
masing-masing berisi baris dan kolom
• Tabel di bawah ini berisi data karyawan
Baris
Kolom EMPLOYEES (nama tabel)
EMPLOYEE_ID FIRST_NAME LAST_NAME DEPARTMENT_ID
100 Steven King 90
101 Neena Kochhar 90
102 Lex De Haan 90
200 Jennifer Whalen 10
205 Shelley Higgins 110
Bahasa untuk Mengakses Data
• Bahasa kueri terstruktur (SQL) memungkinkan kita untuk mengakses data dalam database relasional secara efisien
• Alih-alih mencari secara manual setiap baris untuk
menemukan catatan untuk karyawan nomor 200, kita menggunakan pernyataan SQL berikut:
• Anda dapat melihat hasil dari pernyataan ini pada slide berikutnya
SELECT last_name, department_id FROM employees
WHERE employee_id = 200;
EMPLOYEE_ID FIRST_NAME LAST_NAME DEPARTMENT_ID
100 Steven King 90
101 Neena Kochhar 90
102 Lex De Haan 90
200 Jennifer Whalen 10
205 Shelley Higgins 110
Kueri SQL yang Diilustrasikan
SELECT last_name, department_id FROM employees
WHERE employee_id = 200;
EMPLOYEES (nama tabel)
LAST_NAME DEPARTMENT_ID
Whalen 10
Kueri SQL Khusus
• Untuk mencari semua karyawan di departemen nomor 90, kami menullis pernyataan SQL berbeda:
• Sekali lagi, Anda dapat melihat hasil dari pernyataan ini pada slide berikutnya
SELECT *
FROM employees
WHERE department_id = 90;
Kueri SQL Khusus
SELECT *
FROM employees
WHERE department_id = 90;
EMPLOYEES (nama tabel)
EMPLOYEES (nama tabel)
EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
Primary Key
• Primary key (PK) adalah kolom atau kumpulan koklom
yang mengidentifikasi secara unik setiap
baris di tabel
BANK_NO ACCT_NO BALANCE DATE_OPENED 104 75760 120,050.00 21-OKT-89
104 77956 100.10
105 89570 55,775.00 15-JAN-85 103 55890 15,001.85 10-MAR-91
105 75760 5.00 22-SEP-03
ACCOUNTS
Primary Key Beberapa Kolom
Primary Key Kolom Tunggal EMPLOYEES
EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
Primary Key
• Setiap tabel harus
memiliki primary key, dan primary key harus unik
BANK_NO ACCT_NO BALANCE DATE_OPENED 104 75760 120,050.00 21-OKT-89
104 77956 100.10
105 89570 55,775.00 15-JAN-85 103 55890 15,001.85 10-MAR-91
105 75760 5.00 22-SEP-03
ACCOUNTS
Primary Key Beberapa Kolom
Primary Key Kolom Tunggal EMPLOYEES
EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
Primary Key
• Tidak ada bagian primary key berupa null
BANK_NO ACCT_NO BALANCE DATE_OPENED 104 75760 120,050.00 21-OKT-89
104 77956 100.10
105 89570 55,775.00 15-JAN-85 103 55890 15,001.85 10-MAR-91
105 75760 5.00 22-SEP-03
ACCOUNTS
Primary Key Beberapa Kolom
Primary Key Kolom Tunggal EMPLOYEES
EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
MEMBER_ID LAST_NAME FIRST_NAME PAYROLL_ID
100 SMITH DANA 21215
310 ADAMS TYLER 59877
210 CHEN LAWRENCE 1101
405 GOMEZ CARLOS 52
378 LOUNGANI NEIL 90386
Kandidat Primary Key
• Tabel dapat memiliki lebih dari satu kolom, atau
kombinasi kolom, yang bisa berfungsi sebagai primary key tabel
• Setiap kolom, atau kombinasi kolom, disebut
"candidate" key karena bisa dipilih untuk digunakan sebagai primary key
Candidate Key Candidate Key
MEMBERS
Pilih Candidate Key
• Pilih satu candidate key untuk menjadi primary key tabel
• Kandidat lain menjadi key alternatif (atau unique key)
MEMBERS
Primary Key Alternatif atau
Unique Key (UK)
MEMBER_ID LAST_NAME FIRST_NAME PAYROLL_ID
100 SMITH DANA 21215
310 ADAMS TYLER 59877
210 CHEN LAWRENCE 1101
405 GOMEZ CARLOS 52
378 LOUNGANI NEIL 90386
Foreign Key
• Foreign Key(FK) adalah kolom, atau kombinasi kolom, dalam satu tabel yang berisi nilai yang cocok dengan nilai primary key di tabel lain
Foreign Key
DEPARTMENTS merujuk ke
Primary Key
EMPLOYEES
EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
DEPARTMENT_ID DEPARTMENT_NAME
10 Administrasi
20 Pemasaran
50 Pengiriman
BOOK_NO SHELF_NO BOOK_NAME 106 Administrasi LITTLE WOMEN 15 Pemasaran TALE OF TWO CITIES 7897 Pengiriman HARRY POTTER
15 Q35 LEARN TO SPEAK SPANISH
Aturan Foreign Key
• Jika primary key terdiri dari satu foreign key atau lebih, nilai FK tidak boleh NULL
SHELVES BOOKS
Primary Key Primary Key
PK ditautkan ke FK
SHELF_NO A6
A8 B24 Q35
• Kolom harus berisi satu nilai yang
konsisten dengan
format data kolom
BANK_NO ACCT_NO BALANCE DATE_OPENED 104 75760 120,050.00 21-OKT-89104 77956 100.10
105 89570 55,775.00 15-JAN-85
103 55890 15,001.85 10-MAR-91
105 75760 5.00 22-SEP-03
Integritas Kolom
ACCOUNTS
Definisi Tabel ACCOUNTS
Column Name Data Type Optionality BANK_NO Number (5) Not Null ACCT_NO Number (8) Not Null BALANCE Number (12,2) Not Null DATE_OPENED Date
Ringkasan Aturan Integritas Data
• Aturan integritas data (juga dikenal sebagai constraint) menentukan status yang benar untuk database secara relasional
• Aturan integritas data memastikan bahwa penggunda
dapat melakukan operasi tersebut yang membiarkan
database dalam status yang konsisten dan benar
Ringkasan Aturan Integritas Data
Tipe Constraint Penjelasan Contoh
Integritas Entitas Primary key harus unik, dan tidak ada bagian dari primary key dapat null
Kolom emp_no dalam tabel EMPLOYEES tidak boleh null Integritas referensial
Foreign key harus cocok
dengan nilai primary key yang ada (atau yang lain kecuali null jika null tidak diizinkan)
Nilai di kolom dept_no tabel EMPLOYEES harus cocok
dengan nilai di kolom dept_no di tabel DEPARTMENTS
Integritas Kolom Kolom harus berisi nilai yang konsisten dengan format data kolom
Nilai di kolom saldo di tabel ACCOUNTS harus numerik
Integritas Buatan
Pengguna Data yang disimpan di database harus mematuhi aturan bisnis
Jika nilai kolom saldo tabel ACCOUNTS di bawah 1.00, kita harus kirim surat ke pemilik rekening ( ini akan
membutuhkan pemrograman tambahan untuk diberlakukan)